From 6dff4f8f48fe0957b48f5e0fb6a7cdaa7a55a6fd Mon Sep 17 00:00:00 2001 From: pulse-agent Date: Wed, 20 May 2026 00:51:49 -0300 Subject: [PATCH] =?UTF-8?q?test(components):=2056/56=20Button,=20Input,=20?= =?UTF-8?q?Alert,=20Card=20=E2=80=94=20clean=20suite=20no=20jest-dom=20(pu?= =?UTF-8?q?re=20DOM=20matchers)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/tests/components.test.tsx | 399 ++++++++++++++++++ 1 file changed, 399 insertions(+) create mode 100644 projetos/@pulse-libs/core/tests/components.test.tsx diff --git a/projetos/@pulse-libs/core/tests/components.test.tsx b/projetos/@pulse-libs/core/tests/components.test.tsx new file mode 100644 index 0000000..1232677 --- /dev/null +++ b/projetos/@pulse-libs/core/tests/components.test.tsx @@ -0,0 +1,399 @@ +/** + * @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(