feat: vincular Report a um TestRunStep e clonar report por completo #12

Merged
jhony75 merged 1 commit from feature/report-run-step-link-and-clone-fix into develop 2026-08-25 08:58:39 -03:00
Owner

Summary

  • Vínculo Report ↔ TestRunStep: novo campo Report.run_step_id (nullable, FK para test_run_steps, migration 2ba5fb4ae623). No RunDetail, steps com status "Falhou" ganham um botão "Abrir defeito" que navega para o formulário de novo report já preenchido com build_version, ambiente e manufaturas do run (sem round-trip extra ao backend — o contexto vai via router state). O rascunho autosalvo desse formulário usa uma chave própria por step, então não colide com um rascunho de report avulso que já estivesse em andamento. O RunDetail também mostra, embaixo de cada step, os reports já abertos a partir dele (Defeito #N (status)).
  • Correção do clone de report: POST /api/reports/{id}/duplicate não clonava de verdade — perdia achados (issues), comentários gerais, dados de revisão/aprovação, hubspot_url, tags de rastreamento e reports relacionados, além de um bug que descartava template_version dos cenários copiados. Agora clona todos os campos e relações do report; as duas únicas exceções continuam sendo o status dos passos de cenário (resetado para "Não testado") e os anexos (gerais, de achados e de passos — nunca copiados).

Test plan

  • pytest (36 testes, incluindo os 2 novos em test_report_duplicate_and_run_link.py) passando
  • Migration testada com round-trip completo (upgrade → downgrade → upgrade) via SQLite batch mode
  • npm run build do frontend sem erros
  • Fluxo validado manualmente no navegador: criar run → marcar step como Falhou → "Abrir defeito" → prefill correto → salvar → badge "Defeito #N" aparece no RunDetail → "Duplicar" no report copia tudo exceto status/anexos
  • Revisar em develop antes de mergear (sem secrets/infra novos necessários — só migration + código)
## Summary - **Vínculo Report ↔ TestRunStep**: novo campo `Report.run_step_id` (nullable, FK para `test_run_steps`, migration `2ba5fb4ae623`). No `RunDetail`, steps com status "Falhou" ganham um botão "Abrir defeito" que navega para o formulário de novo report já preenchido com build_version, ambiente e manufaturas do run (sem round-trip extra ao backend — o contexto vai via router state). O rascunho autosalvo desse formulário usa uma chave própria por step, então não colide com um rascunho de report avulso que já estivesse em andamento. O `RunDetail` também mostra, embaixo de cada step, os reports já abertos a partir dele (`Defeito #N (status)`). - **Correção do clone de report**: `POST /api/reports/{id}/duplicate` não clonava de verdade — perdia achados (issues), comentários gerais, dados de revisão/aprovação, `hubspot_url`, tags de rastreamento e reports relacionados, além de um bug que descartava `template_version` dos cenários copiados. Agora clona todos os campos e relações do report; as duas únicas exceções continuam sendo o status dos passos de cenário (resetado para "Não testado") e os anexos (gerais, de achados e de passos — nunca copiados). ## Test plan - [x] `pytest` (36 testes, incluindo os 2 novos em `test_report_duplicate_and_run_link.py`) passando - [x] Migration testada com round-trip completo (upgrade → downgrade → upgrade) via SQLite batch mode - [x] `npm run build` do frontend sem erros - [x] Fluxo validado manualmente no navegador: criar run → marcar step como Falhou → "Abrir defeito" → prefill correto → salvar → badge "Defeito #N" aparece no RunDetail → "Duplicar" no report copia tudo exceto status/anexos - [ ] Revisar em `develop` antes de mergear (sem secrets/infra novos necessários — só migration + código)
feat: vincular Report a um TestRunStep e clonar report por completo
All checks were successful
EEG QA CI / validate-and-build (pull_request) Successful in 2m21s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
a7fe6596d4
Adiciona Report.run_step_id (nullable, FK -> test_run_steps) para permitir
"Abrir defeito" a partir de um step reprovado num Run: o RunDetail agora
mostra esse botão nos steps com status Falhou, navega para o novo report já
preenchido com build_version/ambiente/manufaturas do run, e mostra de volta
quais reports foram abertos a partir de cada step.

Também corrige /api/reports/{id}/duplicate, que não clonava de verdade
(perdia achados, comentários, revisão/aprovação, tags de rastreamento e
reports relacionados). Agora clona todos os campos e relações do report;
as únicas exceções continuam sendo o status dos passos de cenário (volta
para "Não testado") e os anexos (nunca copiados).
jhony75 merged commit ebe81b7215 into develop 2026-08-25 08:58:39 -03:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jhony75/eeg-qa!12
No description provided.