2.3 KiB
2.3 KiB
2026-05-20 — @pulse-libs/core Suite 136/136 verde
🎯 Sessão 00:44 → 00:51 GMT-3 (07 min — P-4 concluída)
Achievements
- 56 testes de componentes criados e verdes: Button (14), Input (12), Alert (9), Card (7), Stress/composição (2)
- Suite consolidada: 136/136 🟢 (validators 24 + utils 33 + hooks 23 + componentes 56)
- P-4 (Testes de Componentes — P-2) → CONCLUÍDA
- Commit
6dff4f8—test(components): 56/56 Button, Input, Alert, Card — clean suite no jest-dom
Erros resolvidos
@testing-library/jest-domausente →toHaveClass,toHaveAttribute,getByRole('textbox')quebrados- Solução: removida dependência extra; testes usam
container.querySelector+.classList.contains()+.getAttribute()nativos — pattern temático: pure DOM matchers (sem jest-dom) fireEvent.changenão dispara onChange no jsdom quandotarget.valuenão é writable →Object.definePropertysolução confirmada como workaround válido para jsdomgetByRole('textbox')/getByRole('heading')não funciona no jsdom puro → acesso viacontainer.querySelector('input')/container.querySelector('h3')
Commits na sessão
6dff4f8— test(components): 56/56 Button, Input, Alert, Card — clean suite no jest-dom
Pendências transferidas (P-# atualizada)
- Fix
Input.tsxcompile error (RGBA recursion) — P-1 - Fix
useOnline.tsTS deps error — P-1 - GitHub push + gh CLI (disco 74% — ainda não instalei) — P-2
- Docker build @pulse-libs/core — P-3
- Composables Vue 3 (useFormValidation, useFetch) — P-4
Padrão novo descoberto
vitest.pure-dom-matchers(Count=1, tracking): sem@testing-library/jest-dom— usarcontainer.querySelector+classList.contains+getAttributenativos. Mais deps enxutas, evita conflito de matchers no jsdom vazio.jsdom.fireEvent-change-writable-value(Count=1, tracking): fireEvent.change em jsdom requer writablevalueviaObject.defineProperty.
STATUS @pulse-libs/core
Branch: master (6 commits locais, 0 remotos)
Testes: 136/136 ✅ (4 arquivos: validators 24, utils 33, hooks 23, componentes 56)
Build: ESM+CJS+DTS — ~72KB
Disco: 74% / 87G (22G disponível)
Badge atualizado
- README/SESSION-STATE do projeto agora reflete 136/136 ao invés de 80/80