feat: Shared Steps -- passo reutilizavel e versionado (item 4) #49
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/shared-steps"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implementa o item 4 do roadmap: uma biblioteca de Shared Steps versionada, com pin explicito por cenario.
Empilhado sobre #48 (
feature/scenario-external-key-edit, ainda nao mergeada) -- esta branch parte do commitff74458(external_key). Mergear #48 primeiro; depois desta ou rebase automatico ao mergear via Forgejo.O que muda
modules/shared_steps/:SharedStep(linha viva, cache do texto/versao atual) +SharedStepVersion(guarda TODA versao, nao so historico -- diferente deTestScenarioTemplateVersion, pq uma referencia externa fixada precisa resolver qualquer versao, atual ou passada, do mesmo jeito).TestStepTemplate) pode fixar um Shared Step numa versao especifica (shared_step_id+shared_step_version). O texto do passo e sempre uma COPIA resolvida da versao fixada -- nunca uma referencia viva -- entao nenhum export/copia-pra-run precisou mudar.shared_step_versionexplicito e diferente no payload.Frontend
wordDiff.ts, sem lib nova -- decisao confirmada com o usuario de incluir isso ja nesta rodada, nao deixar pra depois).ScenarioBuilder: inserir Shared Step existente num passo, "Tornar Shared Step" (extrai um passo solto pra um Shared Step novo -- os dois caminhos de criacao confirmados com o usuario), badge de vinculo + upgrade explicito quando a versao fixada fica pra tras.Library: "Editar cenario" -- nao existia NENHUMA forma de editar os passos de um cenario ja existente antes disso (so criar). Necessario pra poder gerenciar vinculo/upgrade/desvinculo depois que o cenario ja existe.Bugs achados e corrigidos durante a implementacao
update_scenario_templatebumpava versao/historico em QUALQUER PUT, ate um que so mudasse metadado (tags/external_key/suite_id). Sem o fix, todo vinculo/upgrade de Shared Step geraria uma entrada de historico espuria no cenario que nem mudou de conteudo. Mesmo padrao aplicado tambem emupdate_shared_step.ondelete=SET NULLno FK so limpa a propria coluna -- deletar um Shared Step nulavashared_step_idmas deixavashared_step_versionorfao. Fix: UPDATE explicito das duas colunas na mesma operacao de delete.Verificacao
pytest -n auto-- 166 passed (9 testes novos emtest_shared_steps.py).tsc --noEmit,eslint,vitest-- 116 passed (8 testes novos),build,build-storybook-- todos ok.Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com