- Schemas:
- validar GestorCreate
- validar PedidoCreate
- validar DashboardResponse
- Serviços:
- criar pedido válido
- bloquear pedido duplicado
- bloquear gestor sem permissão
- Gestores:
- cadastrar gestor
- listar gestores
- Pedidos:
- criar pedido
- listar pedidos
- Dashboard:
- retornar métricas corretas
- gestor cadastrado cria pedido
- pedido aparece na listagem
- dashboard reflete novos pedidos
- gestor inexistente retorna 404
- payload inválido retorna 422
- pedido duplicado retorna 400
- múltiplas consultas simultâneas em:
- /gestores
- /pedidos
- /dashboard
- Regex:
- validar /gas 2
- validar /agua 5
- invalidar /gas
- invalidar /gas abc
- Parser:
- converter comando corretamente
- validar quantidade
- validar tipo
- Permissões:
- permitir gás
- bloquear água
- bloquear gestor inativo
- Limite diário:
- permitir abaixo do limite
- bloquear acima do limite
- criar pedido no banco
- contar pedidos diários
- relacionamento gestor/pedido
- fluxo completo de criação de pedido
- rejeição de comando inválido
- rejeição por permissão
- impedir flood
- impedir bypass de permissões
- impedir comandos inválidos
- garantir funcionamento das migrations
- garantir persistência correta
✅ Testes Unitários
- validar criação de gestor
- validar telefone único
- validar permissões booleanas
- validar relacionamento com gestor
- validar quantidade
- validar tipo
- validar persistência de logs
- validar timestamps
- Alembic cria tabelas corretamente
- ForeignKey funciona corretamente
- relacionamento ORM funciona
- inserir gestor no banco
- criar pedido vinculado
- registrar log
- impedir telefone duplicado
- impedir pedido sem gestor válido
- garantir que migrations antigas continuam funcionando
- validar integridade do banco após upgrade
- healthcheck endpoint retorna 200
- config carrega DATABASE_URL
- get_db abre e fecha sessão corretamente
- API sobe com Docker
- PostgreSQL conecta corretamente
- endpoint /health responde via container
- container db inicia corretamente
- container api conecta no db
- variáveis .env são carregadas
- acessar /health em produção
- verificar logs do container
- validar restart automático