feat: tipo de cenario -- MANUAL_STEPS/BDD/CHECKLIST/EXPLORATORY (item 5) #50
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/scenario-types"
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 5 do roadmap: tipo/estilo de autoria do cenario.
Empilhado sobre #49 (
feature/shared-steps, ainda nao mergeada), que por sua vez empilha sobre #48 (feature/scenario-external-key-edit, ainda nao mergeada). Ordem de merge: #48 -> #49 -> esta.O que muda
TestScenarioTemplateganhatype:MANUAL_STEPS|BDD|CHECKLIST|EXPLORATORY-- vocabulario fechado no mesmo padrao ja usado poroutcome/failure_classification(String simples +Literalno Pydantic, sem Enum de banco).AUTOMATEDdeliberadamente NAO e um tipo -- automacao e capacidade/implementacao de um cenario, nao uma categoria de autoria.Auditoria antes de implementar confirmou que esse conceito nao existia em NENHUM lugar do codigo -- so um
keywordGiven/When/Then opcional por passo, sem validacao nenhuma. Pra que o tipo mude comportamento real (regra explicita do roadmap: "nao adicionar tipo que so muda aparencia"), cada tipo agora exige coerencia real com a keyword dos passos:A validacao roda depois de resolver eventuais Shared Steps (senao um passo vinculado poderia burlar a regra), e valida os passos que JA existem mesmo quando so o
typemuda num PUT sem reenviarsteps.typeconta como CONTEUDO pra fins de versionamento -- redefine o que os passos do cenario significam, entao editar-lo bump a versao e grava historico, igual a name/description/steps.Decisoes de produto confirmadas com o usuario (AskUserQuestion)
Frontend
Seletor de tipo no
ScenarioBuilder, com normalizacao imediata ao trocar (BDD preenche keyword em branco com "Given", CHECKLIST limpa keyword de todo passo) pra manter a UI sempre coerente com o que o backend valida -- keyword fica escondida pra CHECKLIST e sem a opcao vazia "—" pra BDD. Checagem espelhada no cliente antes do submit evita um round-trip previsivel; o backend continua sendo a fonte de verdade. Badge de tipo na Library (detalhe e historico), reaproveitandodomainStatusVariants.tsdo item 3.Verificacao
pytest -n auto-- 172 passed (6 testes novos).tsc --noEmit,eslint,vitest-- 125 passed (4 testes novos),build,build-storybook-- todos ok.Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com