Cenário real

Um teste de atualização de carrinho falhou com erro 405 Method Not Allowed. Antes de alterar o código, foi necessário investigar o contrato real da API.

O problema encontrado

O teste utilizava uma rota de atualização de produto no carrinho:

PUT /carts/{cart_id}/product/{product_id}
A resposta da API:
405 Method Not Allowed
Esse erro indica que a rota existe, porém o método HTTP utilizado não é permitido.

Investigação

1. Validando o contrato no Swagger

A documentação revelou que a rota correta era diferente:

PUT /carts/{cartId}/product/quantity
Payload esperado:
{
  "product_id": "ID_DO_PRODUTO",
  "quantity": 3
}

2. Confirmando métodos disponíveis

O método OPTIONS ajudou a identificar quais operações estavam disponíveis na rota:

Allow: DELETE
Isso confirmou que aquela URL não aceitava PUT.

Correção aplicada

Antes:

PUT /carts/{cartId}/product/{productId}

Depois:

PUT /carts/{cartId}/product/quantity

{
  "product_id": productId,
  "quantity": quantity
}

Aprendizados

  • Nem toda falha de teste significa erro no código.
  • Status HTTP carregam informações importantes para investigação.
  • Swagger deve ser usado como ferramenta de análise, não apenas consulta.
  • Validar endpoint, método e payload evita alterações desnecessárias.

Códigos HTTP importantes


400 - Dados inválidos
401 - Autenticação inválida
403 - Sem permissão
404 - Recurso não encontrado
405 - Método HTTP incorreto
422 - Falha de validação

Conclusão

Automação profissional exige mais do que escrever chamadas HTTP. O trabalho de QA envolve interpretar falhas, levantar hipóteses e validar o comportamento real da aplicação.