41 lines
2.3 KiB
Markdown
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
|