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

41 lines
2.3 KiB
Markdown

# 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-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