Unit Tests (TypeScript)
Overview
Guia a criação de testes unitários para domain + application com Jest, garantindo ≥95% de cobertura de lines no escopo do módulo/BC.
Guidelines
- Ler
references/unit-test-pattern.mdantes de escrever testes. - Testar comportamento e invariantes, não detalhes de implementação.
- Mockar ports (
IRepository, serviços externos) — nunca DB/HTTP em unit test. - Seguir paths existentes:
packages/<module>/core/test/**outest/**colocado ao lado do módulo. - Após criar testes, executar
npm teste confirmar threshold dojest.config.ts. - Se coverage < 95%, adicionar casos para branches não cobertos antes de concluir.
Workflow
- Identificar artefatos a testar (VOs, Entity, UseCase, Query) a partir do BC ou task do backlog.
- Localizar ou criar pasta
test/espelhando a estrutura desrc/. - Para cada VO: testes válido + inválido + normalização.
- Para Entity: factory + métodos de domínio + igualdade por id.
- Para UseCase/Query: fluxo feliz + erros de negócio (mock repository).
- Executar
npm test -- --coverageno package do módulo. - Se necessário, rodar
node scripts/check-coverage.mjs 95 domain application entity vo use-case use-cases queries. - Ajustar
jest.config.tscollectCoverageFromse o escopo incluir arquivos irrelevantes.
Integração com backlog
| Task prefix | Este skill cobre |
|---|---|
test:unit |
Escrita dos testes |
test:coverage |
Validação ≥95% + ajuste até passar |
References
references/unit-test-pattern.md— padrões, checklist, jest.config../skills-standards.md— Test Coverage Standard../config-cicd/assets/check-coverage.mjs— script de gate para CI
Global Standards
- Consultar
../skills-standards.mdpara padrões globais.