Ir para o conteúdo

Frontend Web - Testes e Validações

Este documento descreve os comandos e critérios de qualidade usados no frontend web.

Ferramentas

  • Vitest
  • Testing Library (react, user-event, jest-dom)
  • ESLint
  • TypeScript (tsc no build)

Scripts atuais

Com base em billings-ease-web/package.json:

  • pnpm test
  • pnpm test:ui
  • pnpm test:coverage
  • pnpm lint
  • pnpm build
  • pnpm check:deps:modules
  • pnpm check:deps:modules:strict

Gate arquitetural

check:deps:modules e check:deps:modules:strict validam:

  1. módulo não importa pages
  2. services não importam hooks/view
  3. hooks não importam view
  4. view não importa services locais
  5. modo strict:
  6. view não importa hooks
  7. view não usa useQuery/useMutation
  8. view não importa @/services/api
  9. page deve orquestrar via hooks (sem importar services locais diretamente)

Estratégia recomendada

  1. Testar componentes de view e components como camada de apresentação.
  2. Testar hooks com foco em comportamento de estado e efeitos.
  3. Mockar serviços nos testes de hook/page.
  4. Evitar acoplamento de teste com detalhes internos de implementação visual.

Critério mínimo de aceitação em refatorações

  1. pnpm check:deps:modules
  2. pnpm check:deps:modules:strict
  3. pnpm lint
  4. pnpm build

Quando houver cobertura específica da mudança:

  1. pnpm test (ou suíte direcionada)

Cenários de aceite - onboarding e primeiro ciclo

  • Cliente conclui /health-info e não recebe ciclo automático.
  • Cliente sem ciclo ativo acessa /cycles e recebe bloqueio obrigatório para criar o primeiro ciclo.
  • Cliente sem ciclo ativo acessa /daily-register diretamente e recebe o mesmo bloqueio obrigatório.
  • Após criar o ciclo, a navegação em /cycles, /dashboard e /daily-register volta ao fluxo normal.