E01 - Plataforma de Inteligência Artificial
Critérios de Aceite e Plano de Testes
Versão: 2.0 | Data: 05/01/2026 | API Base: ConectEnvios API V1
1. Critérios de Aceite
1.1 Rastreamento (RF-E01-003)
| ID | Critério de Aceite | Tipo |
|---|---|---|
| CA-003-01 | Package ID é extraído corretamente do contexto | Unitário |
| CA-003-02 | GET /package/track/:id retorna array de TrackingEvent | Integração |
| CA-003-03 | Status retornado em menos de 3 segundos | Performance |
| CA-003-04 | Cache Redis utilizado (key: tracking:{package_id}) | Integração |
| CA-003-05 | Mensagem formatada com city/state e description | Funcional |
| CA-003-06 | ID inválido retorna mensagem de erro amigável | Negativo |
1.2 Cotação (RF-E01-004)
| ID | Critério de Aceite | Tipo |
|---|---|---|
| CA-004-01 | CEP validado via GET /cep/address | Integração |
| CA-004-02 | POST /package/shipping retorna array multi-transportadora | Integração |
| CA-004-03 | Cotação calculada em menos de 5 segundos | Performance |
| CA-004-04 | Quote_id gerado com options[] da API | Funcional |
| CA-004-05 | Slot filling funciona (CEP → CEP → peso) | E2E |
| CA-004-06 | CEP inválido (error: true) tratado com mensagem | Negativo |
2. Plano de Testes
2.1 Pirâmide de Testes
/\
/ \
/ E2E\ 5%
/──────\
/ \
/ Integração\ 15%
/──────────────\
/ \
/ Unitários \ 80%
/────────────────────\
2.2 Cobertura Mínima
| Tipo | Mínimo | Meta |
|---|---|---|
| Linhas | 70% | 85% |
| Branches | 60% | 75% |
| Functions | 80% | 90% |
3. Casos de Teste
3.1 TC-005: Rastreamento (Integração)
// tests/integration/tracking-flow.test.ts
import { mockConectEnviosAPI } from '@/mocks/conectenvios';
describe('Tracking Flow - ConectEnvios API', () => {
it('should process tracking via GET /package/track/:id', async () => {
const packageId = 12345;
mockConectEnviosAPI.setTrackingResponse(packageId, {
error: false,
data: [
{
city_id: 5564,
city: 'Brasília',
state: 'DF',
correios_date: '2026-01-05T14:30:00Z',
correios_type: 'RO',
description: 'Objeto em trânsito'
}
]
});
const webhookPayload = createWebhookPayload({
from: '5561999999999',
text: `Rastrear envio ${packageId}`
});
const response = await app.inject({
method: 'POST',
url: '/webhook/whatsapp',
payload: webhookPayload
});
expect(response.statusCode).toBe(200);
const outbound = await app.getLastOutboundMessage('5561999999999');
expect(outbound.content.body).toContain('Brasília/DF');
expect(outbound.content.body).toContain('em trânsito');
});
});
3.2 TC-006: Cotação (Integração)
// tests/integration/quote-flow.test.ts
describe('Quote Flow - ConectEnvios API', () => {
beforeAll(() => {
// Mock GET /cep/address
mockConectEnviosAPI.setCEPResponse('70000000', {
error: false,
data: {
city_id: 5564,
city_title: 'Brasília',
state_abbreviation: 'DF'
}
});
// Mock POST /package/shipping
mockConectEnviosAPI.setShippingResponse({
error: false,
data: [
{
postal_company_id: 1,
company_name: 'Correios',
name: 'SEDEX',
price_discounted: 70.04,
deadline: 1
},
{
postal_company_id: 2,
company_name: 'Jadlog',
name: 'PACKAGE',
price_discounted: 25.50,
deadline: 4
}
]
});
});
it('should complete quote with slot filling', async () => {
const phone = '5561888888888';
await sendMessage(app, phone, 'Quero uma cotação');
let response = await app.getLastOutboundMessage(phone);
expect(response.content.body).toContain('CEP de origem');
await sendMessage(app, phone, '70000-000');
response = await app.getLastOutboundMessage(phone);
expect(response.content.body).toContain('Brasília/DF');
await sendMessage(app, phone, '01310-100');
await sendMessage(app, phone, '2kg');
response = await app.getLastOutboundMessage(phone);
expect(response.content.body).toContain('SEDEX');
expect(response.content.body).toContain('Jadlog');
});
});
4. SLAs de Performance
| Métrica | Objetivo | Crítico |
|---|---|---|
| Tempo resposta (p50) | < 200ms | > 500ms |
| Tempo resposta (p95) | < 1s | > 3s |
| Disponibilidade | 99.5% | < 99% |
| Taxa de erro | < 1% | > 5% |
| Tempo resposta bot | < 3s | > 10s |
5. Definition of Done
- Código implementado e revisado
- Testes unitários passando (cobertura > 70%)
- Testes de integração passando
- Documentaç ão atualizada
- Performance dentro dos SLAs
- Deploy em staging bem-sucedido
6. Histórico de Revisões
| Versão | Data | Descrição |
|---|---|---|
| 1.0 | 05/01/2026 | Versão inicial |
| 2.0 | 05/01/2026 | Testes com API ConectEnvios V1 |