/** * @pulse-libs/core — Component Tests (clean suite) * @vitest-environment jsdom * * Acessa elementos exclusivamente via render().container.querySelector/querySelectorAll * para evitar conflitos com o accessibility tree vazio do jsdom. */ import { vi, beforeEach } from 'vitest'; import { render, fireEvent } from '@testing-library/react'; import { Button, Input, Alert, Card, CardHeader, CardTitle, CardBody, } from '../src/components/index'; // ─ mocks globais ──────────────────────────────────────────────── beforeEach(() => {}); Object.defineProperty(global, 'matchMedia', { value: vi.fn().mockReturnValue({ matches: false, media: '', addEventListener: vi.fn(), removeEventListener: vi.fn(), }), configurable: true, }); // ═══════════════════════════════════════════════════════════════ // Button // ═══════════════════════════════════════════════════════════════ describe('Button', () => { it('renderiza ).container.querySelector('button')!; expect(b.textContent).toBe('Clique'); expect(b.disabled).toBe(false); }); it('é ); fireEvent.click(render().container.querySelector('button')!); expect(fn).toHaveBeenCalledTimes(1); }); it('NÃO chama onClick quando disabled', () => { const fn = vi.fn(); const b = render(