You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
orquestrador/TEST_CASES.md

153 lines
3.0 KiB
Markdown

# Test Cases para o Orquestrador
## Testes Manuais
### Setup
```bash
# Terminal 1: Iniciar servidor
uvicorn app.main:app --reload
# Terminal 2: Rodar testes
bash test-local.sh http://localhost:8000
```
Ou com Docker Compose:
```bash
docker-compose up
bash test-local.sh http://localhost:8000
```
## Casos de Teste
### 1. Chat Simples (Sem Tool)
```bash
curl -X POST http://localhost:8000/chat \
-H "Content-Type: application/json" \
-d '{
"message": "Olá, como você funciona?",
"user_id": "user-123"
}'
```
**Esperado**: Resposta direta do modelo, sem chamada de tool
---
### 2. Consultar Estoque
```bash
curl -X POST http://localhost:8000/chat \
-H "Content-Type: application/json" \
-d '{
"message": "Quero um carro de até 50000 reais",
"user_id": "user-123"
}'
```
**Esperado**: Modelo chama `consultar_estoque` com `preco_max=50000`
---
### 3. Validar Cliente Venda
```bash
curl -X POST http://localhost:8000/chat \
-H "Content-Type: application/json" \
-d '{
"message": "Meu CPF é 12345678900. Posso financiar um carro de 45000 reais?",
"user_id": "user-123"
}'
```
**Esperado**: Modelo chama `validar_cliente_venda`
---
### 4. Avaliar Veículo para Troca
```bash
curl -X POST http://localhost:8000/chat \
-H "Content-Type: application/json" \
-d '{
"message": "Tenho um Toyota Corolla 2015 com 120000 km para dar de entrada. Quanto vale?",
"user_id": "user-123"
}'
```
**Esperado**: Modelo chama `avaliar_veiculo_troca`
---
### 5. Agendar Revisão
```bash
curl -X POST http://localhost:8000/chat \
-H "Content-Type: application/json" \
-d '{
"message": "Quero agendar uma revisão para meu carro com placa ABC1234 no dia 25 de fevereiro às 10 da manhã",
"user_id": "user-123"
}'
```
**Esperado**: Modelo chama `agendar_revisao`
---
### 6. Cancelar Pedido
```bash
curl -X POST http://localhost:8000/chat \
-H "Content-Type: application/json" \
-d '{
"message": "Gostaria de cancelar meu pedido número 12345 porque mudei de ideia",
"user_id": "user-123"
}'
```
**Esperado**: Modelo chama `cancelar_pedido`
---
## Swagger UI
Acesse: http://localhost:8000/docs
Todos os endpoints estão documentados lá para testar interativamente.
## Checklist de Testes
- [ ] Chat simples sem tool funciona
- [ ] Consultar estoque retorna veículos
- [ ] Validar cliente retorna aprovação/rejeição
- [ ] Avaliar veículo retorna valor estimado
- [ ] Agendar revisão retorna agendamento
- [ ] Cancelar pedido retorna cancelamento
- [ ] Modelo é assertivo (chama tools quando apropriado)
- [ ] Modelo não chama tools desnecessariamente
- [ ] Respostas são formatadas corretamente
- [ ] Sem erros 500 na API
## Debugging
### Ver logs detalhados
```bash
# Terminal com logs
uvicorn app.main:app --reload --log-level debug
```
### Testar Mockaroo direto
```bash
curl -X POST http://localhost:8000/mock/consultar-estoque \
-H "Content-Type: application/json" \
-d '{"preco_max": 50000}'
```
### Ver resposta do Vertex AI
Adicione console.log nos handlers para ver o que o Vertex retorna.