Skip to content

bug: force erro logic#1

Open
ismaelalvesgit wants to merge 1 commit into
mainfrom
bug/break-logic
Open

bug: force erro logic#1
ismaelalvesgit wants to merge 1 commit into
mainfrom
bug/break-logic

Conversation

@ismaelalvesgit

Copy link
Copy Markdown
Owner

Removendo logica de validação de duplicidade

@ismaelalvesgit ismaelalvesgit self-assigned this Jun 8, 2026
@ismaelalvesgit ismaelalvesgit added the bug Something isn't working label Jun 8, 2026
@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown

🤖 PR Insights

📋 Resumo da Mudança

  • Removida a validação que impedia faturar um pedido já faturado em OrdersService.invoice (checagem de status INVOICED).
  • Deixa de ocorrer a exceção BadRequestException com a mensagem "Order already invoiced".
  • Removido o teste que validava o erro ao tentar faturar novamente um pedido já faturado em orders.controller.spec.ts.
  • Mantidas as validações: "Canceled order cannot be invoiced" e "Order must contain items".
  • Regra de negócio sobre duplicidade de faturamento foi alterada para permitir a segunda tentativa.

🔍 Mudanças Relevantes

  • Remoção do bloco no OrdersService.invoice que lançava BadRequestException quando order.status === INVOICED.
  • Exclusão do teste "should error when generating invoice for already invoiced order" em orders.controller.spec.ts.

🎯 Impactos Identificados

  • Chamadas subsequentes de faturamento para um pedido já faturado não produzirão mais o erro "Order already invoiced".
  • Mudança de contrato/comportamento: clientes que esperavam essa exceção deixam de recebê-la.
  • Continua proibido faturar pedidos cancelados ou sem itens.

⚠️ Possíveis Riscos

  • Possível faturamento repetido do mesmo pedido, caso a operação não seja idempotente.
  • Potencial inconsistência funcional se a segunda chamada modificar estado/gerar registros adicionais.
  • Quebra de expectativas para consumidores que tratavam a exceção específica de pedido já faturado.

✅ Checklist de Validação

  • Faturar um pedido e tentar faturá-lo novamente: confirmar resultado da segunda chamada (sucesso, idempotência ou efeitos colaterais).
  • Garantir que pedidos cancelados continuam retornando "Canceled order cannot be invoiced".
  • Garantir que pedidos sem itens continuam retornando "Order must contain items".
  • Observar se a segunda chamada altera status, cria registros adicionais ou é um no-op.
  • Verificar mensagens/erros retornados aos consumidores na segunda tentativa de faturamento.

❓ Pontos para Atenção

  • A remoção da validação de duplicidade é intencional para o domínio? Qual o comportamento esperado na segunda tentativa (idempotente, permitir refaturamento, outro fluxo)?
  • Há consumidores que dependiam da exceção "Order already invoiced" e precisam de ajuste/comunicação?

🚦 Classificação de Risco

🟡 Médio

Justificativa: A mudança remove uma regra de negócio e altera o contrato de erro, podendo permitir faturamento repetido e impactar consumidores.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant