Files
pulse-libs/memory/2026-05-20.md
T

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 6dff4f8test(components): 56/56 Button, Input, Alert, Card — clean suite no jest-dom

Erros resolvidos

  • @testing-library/jest-dom ausente → 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.change não dispara onChange no jsdom quando target.value não é writable → Object.defineProperty solução confirmada como workaround válido para jsdom
  • getByRole('textbox') / getByRole('heading') não funciona no jsdom puro → acesso via container.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.tsx compile error (RGBA recursion) — P-1
  • Fix useOnline.ts TS 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 — usar container.querySelector + classList.contains + getAttribute nativos. Mais deps enxutas, evita conflito de matchers no jsdom vazio.
  • jsdom.fireEvent-change-writable-value (Count=1, tracking): fireEvent.change em jsdom requer writable value via Object.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