Skip to content

Adiciona cenário de totalprice em formato inválido (TC-016) - #11

Merged
ThomasTDS merged 1 commit into
masterfrom
feature/cenario-totalprice-invalido
Sep 19, 2026
Merged

ThomasTDS merged 1 commit into
masterfrom
feature/cenario-totalprice-invalido

Conversation

@ThomasTDS

Copy link
Copy Markdown
Owner

O que mudou

  • Novo cenário TC-016 em create_booking.feature: POST /booking com totalprice como texto em vez de número. A API aceita com 200 e grava null silenciosamente no lugar — em vez de rejeitar o payload.
  • O cenário prova que a validação de schema do projeto (CreateBookingResponse.model_validate) pega essa corrupção: a resposta não bate com o modelo Booking (que exige totalprice: float), e o teste acusa isso via ValidationError em vez de aceitar o dado corrompido como válido — é exatamente o comportamento que o README já promete ("se a API mudar o formato de uma resposta, o teste falha com uma mensagem clara").
  • O id do booking criado (mesmo com dado corrompido) é extraído do JSON cru e guardado em context.booking_id, então a fixture de limpeza remove ele do jeito normal no final do teste.

Plano de teste

  • Cenário isolado (pytest -m TC-016) contra a API real: passou
  • pytest completo: 33 passed, cobertura 100%
  • ruff check ., ruff format --check ., mypy .: passando
  • CI verde no PR

A API aceita totalprice como texto e devolve 200, gravando null no
lugar em silêncio em vez de rejeitar o payload. O cenário prova que
a validação de schema do projeto pega essa corrupção: a resposta
não bate com o modelo Booking, e o teste acusa isso via
ValidationError em vez de aceitar o dado corrompido como válido.
@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 d17055c into master Sep 19, 2026
4 checks passed
@ThomasTDS
ThomasTDS deleted the feature/cenario-totalprice-invalido 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