Pular para conteúdo

Testes

Inventário observado

Na baseline documentada existem arquivos de teste em todas as camadas principais, exceto waiter_desktop, onde não há diretório de testes versionado na árvore auditada.

Área Arquivos de teste observados
apps/aivaleu_app 38
apps/super_admin_web 13
apps/waiter_desktop 0
packages/aivaleu_domain 29
packages/aivaleu_data 14
packages/aivaleu_core 1
packages/aivaleu_ui 3
functions/tests 26 JS, incluindo 3 em tests/emulator

Esses números contam arquivos, não casos de teste.

O context/implementation_status.md registra, como resultado histórico da Sprint 7, 176 testes de Functions, 13 de emulador, 97 de domínio, 77 de dados, 145 do app e 64 do Super Admin. Esses totais são um registro de execução anterior; não substituem uma nova execução na branch atual.

Flutter/Dart

Na raiz:

melos run analyze
melos run test

Ou por package/app:

cd packages/aivaleu_domain
flutter test

Áreas com cobertura relevante incluem entities/use cases, repositories, feed, detalhes da oferta, auth, campanhas, curadoria e widgets.

Functions

cd functions
npm ci
npm test

A suíte padrão Jest ignora tests/emulator para permanecer unitária/rápida.

Emulator tests

npm run test:emulator

Esse script executa o Firestore Emulator com projeto demo e roda apenas a pasta de testes de emulador. É o lugar adequado para concorrência de quota e Rules que precisam do runtime real do Firestore.

O que testar ao alterar fluxos críticos

Ofertas/feed

  • elegibilidade e raio;
  • pesos/diversidade;
  • preservação da ordem no repository;
  • fallback Firestore;
  • oferta esgotada.

Cupons

  • cooldown;
  • duplicidade ativa;
  • quota concorrente;
  • transições active/waiting_checkin/used/cancelled/expired;
  • consumo/liberação exatos dos contadores.

Segurança

  • partner não altera autoria/curadoria;
  • usuário não escreve subscription/Premium;
  • garçom não confirma store fora da sessão;
  • Super Admin sem claim é negado.

CI

Nenhum workflow de CI em .github/workflows foi encontrado na baseline auditada. Portanto, passagem local de testes/analyze não deve ser interpretada como gate automático de merge até que um pipeline seja versionado.