Skip to content

Adiciona cenário documentando bug de criação sem campo obrigatório (TC-015) - #10

Merged
ThomasTDS merged 1 commit into
masterfrom
feature/cenario-campo-obrigatorio-ausente
Sep 19, 2026
Merged

ThomasTDS merged 1 commit into
masterfrom
feature/cenario-campo-obrigatorio-ausente

Conversation

@ThomasTDS

@ThomasTDS ThomasTDS commented Sep 19, 2026 •

Copy link
Copy Markdown
Owner

O que mudou

  • Novo cenário TC-015 em create_booking.feature: POST /booking sem firstname — confirma que a API retorna 500 Internal Server Error em vez de 400, o bug documentado em [BUG] POST /booking sem campo obrigatório derruba a API com 500 #8.
  • Novo método create_booking_raw em BookingApiClient, que aceita um dict cru em vez de um Booking — necessário porque o Booking do Pydantic não deixa construir um objeto com campo obrigatório faltando (a própria validação impediria testar o caso).
  • O cenário funciona como teste de regressão do bug: se um dia a API passar a devolver 400, o teste quebra de propósito, sinalizando que o bug foi corrigido do lado de lá e a issue [BUG] POST /booking sem campo obrigatório derruba a API com 500 #8 pode ser fechada.
  • Matriz de rastreabilidade e marker atualizados.

Relacionado à #8 — documenta o bug com um teste automatizado, mas não fecha a issue: o defeito em si é da API pública de terceiros e continua existindo. Fica a seu critério fechar a issue quando achar melhor (ex: se decidir não perseguir mais isso, ou se a API corrigir do lado de lá).

Plano de teste

  • Cenário isolado (pytest -m TC-015) contra a API real: passou (confirma o 500)
  • ruff check ., ruff format --check ., mypy .: passando
  • CI verde no PR

…C-015)

Fecha o loop da issue #8: POST /booking sem um campo obrigatório
(ex: firstname) derruba a API com 500 em vez de rejeitar com 400.
O cenário trava esse comportamento atual como um teste de
regressão do bug conhecido — se um dia a API passar a devolver 400,
o teste quebra de propósito, sinalizando que o bug foi corrigido e
a issue pode ser fechada.

Adiciona create_booking_raw ao BookingApiClient pra permitir mandar
um payload propositalmente inválido, sem passar pela validação do
Pydantic do create_booking normal.
@codecov

codecov Bot commented Sep 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@ThomasTDS
ThomasTDS merged commit dc64a4c into master Sep 19, 2026
4 checks passed
@ThomasTDS
ThomasTDS deleted the feature/cenario-campo-obrigatorio-ausente branch October 2, 2026 19:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant