/** @vitest-environment jsdom */ import { render, screen, fireEvent } from '@testing-library/react'; import { describe, it, expect, beforeEach } from 'vitest'; import { ThemeToggle } from './ThemeToggle'; import React from 'react'; describe('ThemeToggle', () => { beforeEach(() => { document.documentElement.classList.remove('dark'); }); it('toggles theme when clicked', () => { render(); const button = screen.getByRole('button'); // Initial: light (no dark class) expect(document.documentElement.classList.contains('dark')).toBe(false); // Click to dark fireEvent.click(button); expect(document.documentElement.classList.contains('dark')).toBe(true); // Click back to light fireEvent.click(button); expect(document.documentElement.classList.contains('dark')).toBe(false); }); it('detects initial dark theme', () => { document.documentElement.classList.add('dark'); render(); // Check aria-label or specific icon expect(screen.getByLabelText('Mudar para tema claro')).toBeInTheDocument(); }); });