| Endpoint | Método | Critério de aprovação |
|---|---|---|
/merchants | GET | Retorna array de lojas com id, name, corporateName |
/merchants/{merchantId} | GET | Retorna objeto com operações e endereço completo |
/merchants/{merchantId}/status | GET | Retorna state (OK/WARNING/CLOSED/ERROR) com validações |
/merchants/{merchantId}/interruptions | GET | Retorna array vazio ou com interrupções ativas |
/merchants/{merchantId}/interruptions | POST | Cria pausa com id, start, end e retorna 201 |
/merchants/{merchantId}/interruptions/{id} | DELETE | Remove pausa e retorna 204 sem conteúdo |
/merchants/{merchantId}/opening-hours | GET | Retorna array de turnos com dayOfWeek, start, duration |
/merchants/{merchantId}/opening-hours | PUT | Atualiza horários e retorna 201 com turnos criados |
401 Unauthorized com mensagem clara
Pass: Erro retornado com código 401Teste: Token inválido
Expected: 401 Unauthorized
Pass: Erro retornado com código 401Teste: Token válido
Expected: 200 com dados da loja
Pass: Resposta bem-sucedidaGET /merchants sem parâmetros
Expected: Array com todas as lojas
Pass: Mínimo 1 loja retornada com id válidoTeste: GET /merchants?page=1&size=10
Expected: Máximo 10 lojas por página
Pass: Resposta contém até 10 lojasGET /merchants/{merchantId}/status com loja ABERTA
Expected: state: OK ou WARNING com available: true
Pass: Validação is-connected retorna OKTeste: GET /merchants/{merchantId}/status com loja FECHADA
Expected: state: CLOSED com available: false
Pass: Validação opening-hours retorna CLOSEDPOST /interruptions
Expected: Response 201 com ID da pausa criada
Pass: Pausa aparece em GET /interruptionsTeste: Criar pausa com sobreposição
Expected: 409 InterruptionOverlap
Pass: Erro retornadoTeste: Remover pausa com DELETE /interruptions/{id}
Expected: Response 204 (sem conteúdo)
Pass: Pausa não aparece em listagem posteriorGET /opening-hours
Expected: Array de turnos configurados
Pass: Cada turno tem dayOfWeek, start, durationTeste: Atualizar horários com múltiplos turnos
Expected: Response 201 com turnos criados
Pass: GET /opening-hours retorna novos valoresTeste: Tentar turnos sobrepostos
Expected: 400 BadRequest
Pass: Erro retornado| Código | Cenário | Verificação |
|---|---|---|
400 | Parâmetros inválidos | Corpo inclui code e message |
401 | Token inválido/expirado | Mensagem clara sobre autenticação |
403 | Sem acesso à loja | Erro indica permissão insuficiente |
409 | Recurso em conflito | Código específico (ex: InterruptionOverlap) |
429 | Rate limit | Header Retry-After presente |
500 | Erro do servidor | Mensagem genérica, sem expor detalhes |
5xx1000 requisições por segundo