teqo-backup/docs/changelog/2026-08-25-e2e-demand-decide.md
Francisco Solla a9f0c61edf fix(campanha): restaura submitter no FormData do card de demanda (#921)
O dispatch manual do C139 montava new FormData(form) sem o submitter;
os botões de transição (name=status value=aprovada|rejeitada|…) nunca
viajavam e transitionDemandFormAction rejeitava toda decisão por status
vazio. submitterFrom (cast honesto nativeEvent as SubmitEvent) + segundo
arg do construtor nos handlers de transição e custo; C139 intacto.

Teste unit novo pina o glue FormData→status (SubmitEvent real, não
fireEvent.submit). E2e 'advisor opens a demand and decides it' verde
local (isolado e em runs de arquivo inteiro).
2026-08-25 21:48:30 -03:00

1.4 KiB
Raw Permalink Blame History

2026-08-25 — E2E-DEMAND-DECIDE: decisão de demanda volta a gravar (submeter perdido na regressão C139)

A decisão de demanda em /campanha parou de gravar desde o react-audit família 4 (e273e9ec): o dispatch manual do C139 montava new FormData(form) sem o submitter, e os botões de transição (name="status" value={target}) nunca viajavam — transitionDemandFormAction lia status vazio e toda decisão caía em erro de validação. 3 deploys manuais falharam no e2e full do verify ("advisor opens a demand and decides it").

Correção local no único formulário do padrão com botões nomeados (DemandWorkflowCard.tsx): helper submitterFrom (cast honesto de nativeEvent as SubmitEvent, comentado) e new FormData(form, submitter) nos handlers de transição e custo (no-op de segurança no custo — botão sem name/value hoje). C139 intacto: preventDefault + startTransition + useActionState preservados, nota digitada não some em erro de validação.

Teste novo tests/unit/demandWorkflowCard.unit.spec.tsx pina o glue FormData→status (vermelho pré-fix, verde pós-fix): SubmitEvent real em vez de fireEvent.submit (testing-library mapeia submit para Event simples, sem submitter). E2E determinístico verde local (isolado via filtro posicional spec.ts:764 e 3× em runs de arquivo inteiro). Descoberta de tooling registrada como #923 (--no-deps + -g não filtra em run mode).