refactor(S10): simplify pass — Lead unit-testado, e2e hermético e corridas de login resolvidas #118

Merged
fsolla merged 1 commit from S10-pixel-do-meta-facebook-na-pagina-publica-de-campanha-cam into main 2026-08-20 00:14:02 +00:00
Owner

Follow-up do S10 (#94, merge principal já em main) — simplify pass + robustez de e2e. O safety net mergeou o PR principal antes deste commit; ele completa a entrega.

  • e2e hermético: stub local de connect.facebook.net no guard compartilhado (fixtures/e2eTest.ts) — specs paralelos renderizam a home com o pixel publicado sem tocar na CDN do Meta (rede bloqueada não derruba specs alheios; sem vazamento real de requests).
  • Lead à prova de falha de tracking: CampaignNewsletterForm envolve o bloco trackMetaLead em try/catch próprio — um hiccup de crypto.randomUUID (contexto não-secure) nunca transforma captura commitada em erro UI (retry duplicaria). O PetitionForm tem o mesmo padrão e virou débito registrado (#117).
  • Cobertura da wiring do Lead: unit novo campaignNewsletterLead.unit.spec.tsx (exatamente um Lead no sucesso; nenhum sem pixel; nenhum na falha) — a submissão real ficou fora do e2e porque o spec paralelo campaignNewsletter gerencia a mesma chave única de consentimento.
  • Corridas de estado compartilhado do e2e (resolvidas):
    • seedTestUser → create-if-missing (delete+create deixava janela de usuário ausente e reset de senha invalidava sessões vivas de workers paralelos);
    • helper tests/helpers/adminApi.ts: login do usuário de teste serializado por advisory lock no Postgres — Payload guarda sessões como array read-modify-write (addSessionToUser), então logins concorrentes do mesmo usuário perdem uma sessão (403 em toda requisição admin); specs campaignHomePixel e campaignNewsletter usam o helper. Débito de unificar os specs restantes: #116.
  • Limpeza: FACEBOOK_PIXEL_ID_DESCRIPTION compartilhada (Petition + SiteSettings — sem drift de copy admin); conversão null → undefined do pixel movida para a fronteira da página (padrão da petição).

Validado: unit 251 arquivos / 2421 testes · gate:ci completo · e2e local: par pixel+newsletter 10/10 · frontend 20/20.

Follow-up do S10 (#94, merge principal já em main) — simplify pass + robustez de e2e. O safety net mergeou o PR principal antes deste commit; ele completa a entrega. - **e2e hermético:** stub local de `connect.facebook.net` no guard compartilhado (`fixtures/e2eTest.ts`) — specs paralelos renderizam a home com o pixel publicado sem tocar na CDN do Meta (rede bloqueada não derruba specs alheios; sem vazamento real de requests). - **Lead à prova de falha de tracking:** `CampaignNewsletterForm` envolve o bloco `trackMetaLead` em try/catch próprio — um hiccup de `crypto.randomUUID` (contexto não-secure) nunca transforma captura commitada em erro UI (retry duplicaria). O `PetitionForm` tem o mesmo padrão e virou débito registrado (#117). - **Cobertura da wiring do Lead:** unit novo `campaignNewsletterLead.unit.spec.tsx` (exatamente um `Lead` no sucesso; nenhum sem pixel; nenhum na falha) — a submissão real ficou fora do e2e porque o spec paralelo `campaignNewsletter` gerencia a mesma chave única de consentimento. - **Corridas de estado compartilhado do e2e (resolvidas):** - `seedTestUser` → create-if-missing (delete+create deixava janela de usuário ausente e reset de senha invalidava sessões vivas de workers paralelos); - helper `tests/helpers/adminApi.ts`: login do usuário de teste serializado por advisory lock no Postgres — Payload guarda sessões como array read-modify-write (`addSessionToUser`), então logins concorrentes do mesmo usuário perdem uma sessão (403 em toda requisição admin); specs `campaignHomePixel` e `campaignNewsletter` usam o helper. Débito de unificar os specs restantes: #116. - **Limpeza:** `FACEBOOK_PIXEL_ID_DESCRIPTION` compartilhada (Petition + SiteSettings — sem drift de copy admin); conversão `null → undefined` do pixel movida para a fronteira da página (padrão da petição). Validado: unit 251 arquivos / 2421 testes · gate:ci completo · e2e local: par pixel+newsletter 10/10 · frontend 20/20.
fsolla added 1 commit 2026-08-19 23:51:58 +00:00
refactor(S10): simplify pass — Lead wiring unit-tested e raças de estado compartilhado do e2e resolvidas
All checks were successful
CI (PR) / checks (pull_request) Successful in 15m47s
PR Ready + auto-merge / ready-automerge (pull_request) Successful in 16m1s
Promote plan-issue Related on main merge / plan-issue-ready (pull_request) Has been skipped
Main merge flips claimed issues to done + in-prod / issue-done (pull_request) Successful in 21s
504f6c371d
e2e: stub hermético de connect.facebook.net no guard compartilhado (specs paralelos renderizam a home com o pixel); advisory lock no Postgres serializando o login do usuário de teste (Payload perde sessão em login concorrente read-modify-write — classe documentada no webauthn); seedTestUser vira create-if-missing (sem janela de usuário ausente nem reset de senha); Lead do form protegido do catch de erro (tracking nunca falha uma captura commitada); descrição do campo compartilhada; unidade nova campaignNewsletterLead cobre exatamente um Lead no sucesso.
fsolla merged commit 504f6c371d into main 2026-08-20 00:14:02 +00:00
Sign in to join this conversation.
No reviewers
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: fsolla/teqo#118
No description provided.