jrcosta/repo_alvo_api_simples
25 Apr 2026 – 01:39:46 UTC
📦 artifacts.json 📊 run_summary.json

Arquivo analisado: python-api/app/api/routes.py

Tipo da mudança

Evidências observadas

Impacto provável

Riscos identificados

Cenários de testes manuais

  1. Cálculo básico do carrinho sem cupom e sem VIP
    - Enviar payload com lista de itens válidos, sem cupom e is_vip=False.
    - Verificar se o retorno contém o total correto e estrutura conforme CartResponse.

  2. Cálculo com cupom válido
    - Enviar payload com cupom válido.
    - Confirmar que o desconto é aplicado corretamente no total.

  3. Cálculo com cupom inválido
    - Enviar payload com cupom inválido.
    - Verificar se retorna HTTP 400 com mensagem adequada.

  4. Cálculo para usuário VIP
    - Enviar payload com is_vip=True.
    - Confirmar se o desconto VIP é aplicado conforme esperado.

  5. Payload com itens vazios
    - Enviar payload com lista vazia de itens.
    - Verificar se o sistema retorna total zero ou erro apropriado.

  6. Payload com dados inválidos nos itens (ex: quantidade negativa, preço negativo)
    - Enviar payload com dados inválidos.
    - Confirmar que retorna erro HTTP 400 com mensagem clara.

  7. Testar comportamento com campos obrigatórios faltando no payload
    - Enviar payload incompleto.
    - Verificar se Pydantic rejeita a requisição com erro 422.

  8. Testar resposta para exceções não previstas
    - Simular erro interno no serviço (se possível).
    - Verificar se o endpoint responde com erro 500 ou mensagem adequada.

Sugestões de testes unitários

Sugestões de testes de integração

Sugestões de testes de carga ou desempenho

Pontos que precisam de esclarecimento


Resumo: A mudança introduz um novo endpoint para cálculo do carrinho, integrando o serviço de carrinho com o serviço de desconto. A principal preocupação é garantir a validação correta dos dados, tratamento adequado de erros e cobertura de testes para evitar regressões. A ausência de testes automatizados para essa funcionalidade é um risco que deve ser mitigado com testes unitários e de integração específicos.


Arquivo analisado: python-api/app/schemas.py

Tipo da mudança

Adição de novos modelos Pydantic (schemas) para representar dados relacionados a carrinho de compras (CartItemSchema, CartRequest, CartResponse).

Evidências observadas

Impacto provável

Riscos identificados

Cenários de testes manuais

  1. Validação de criação de CartItemSchema com dados válidos e inválidos
    - Criar item com price negativo → deve falhar validação.
    - Criar item com quantity zero ou negativo → deve falhar validação.
    - Criar item com quantity omitido → deve assumir valor padrão 1.
    - Criar item com campos id e name vazios ou nulos → deve falhar (pois são obrigatórios).

  2. Envio de CartRequest com diferentes combinações
    - Enviar carrinho com lista vazia de itens → verificar se é aceito ou rejeitado.
    - Enviar carrinho com múltiplos itens válidos → deve passar validação.
    - Enviar carrinho com coupon_code nulo, vazio e string válida → validar aceitação.
    - Enviar carrinho com is_vip omitido e explicitamente True → validar valor padrão e override.

  3. Recebimento de CartResponse
    - Validar se os campos subtotal, tax_amount, final_price e items_count são retornados corretamente e coerentes com os dados enviados.
    - Verificar se items_count corresponde ao esperado (total de itens ou tipos de itens).

  4. Testar integração com endpoints que utilizem esses schemas (se existirem)
    - Enviar requisições reais para endpoints que aceitem CartRequest e validar respostas com CartResponse.
    - Testar comportamento com cupons inválidos, VIP true/false, e diferentes quantidades.

Sugestões de testes unitários

Sugestões de testes de integração

Sugestões de testes de carga ou desempenho

Pontos que precisam de esclarecimento


Resumo: A mudança introduz novos modelos Pydantic para carrinho de compras, definindo estrutura e validação básica dos dados. O impacto é a criação de contratos para manipulação de carrinho, sem alterar funcionalidades existentes. Riscos principais são ausência de testes para esses modelos e possíveis ambiguidades no significado de campos como items_count. Recomenda-se criação de testes unitários para validação dos modelos e testes de integração para endpoints que os utilizem, além de esclarecimentos sobre regras de negócio associadas.


Arquivo analisado: python-api/app/services/cart_service.py

Tipo da mudança

Implementação de nova funcionalidade (adição de serviço de carrinho de compras com cálculo de total, impostos e descontos).

Evidências observadas

Impacto provável

Riscos identificados

Cenários de testes manuais

  1. Cálculo básico do carrinho sem cupom e sem VIP:
    - Itens com preços e quantidades variadas.
    - Verificar subtotal, imposto (8%), e preço final sem desconto.

  2. Aplicação de cupom válido e inválido:
    - Testar com cupom que gera desconto e cupom inválido.
    - Verificar se o desconto é aplicado corretamente considerando o bug proposital.

  3. Usuário VIP com e sem cupom:
    - Confirmar que o desconto VIP é aplicado via DiscountService.
    - Confirmar que o desconto adicional de 5% para compras > 1000 não é aplicado para VIP.

  4. Usuário não VIP com subtotal > 1000:
    - Confirmar que o desconto adicional de 5% é aplicado sobre o preço final após desconto do cupom.

  5. Itens com preço negativo:
    - Tentar adicionar item com preço negativo e verificar se ValueError é lançado.

  6. Itens com quantidade zero ou negativa:
    - Testar comportamento para quantidade zero ou negativa (não validado no código).
    - Verificar se o cálculo considera ou rejeita esses casos.

  7. Carrinho vazio:
    - Passar lista vazia e verificar se subtotal, imposto e preço final são zero.

  8. Valores com casas decimais:
    - Testar valores com várias casas decimais para verificar arredondamento correto.

Sugestões de testes unitários

Sugestões de testes de integração

Sugestões de testes de carga ou desempenho

Pontos que precisam de esclarecimento


Essa análise detalha os aspectos técnicos e riscos da nova implementação do serviço de carrinho, com foco em garantir cobertura adequada de testes e identificar pontos críticos para revisão.