mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-13 06:43:06 +00:00
Registra o fechamento da #811: o login REST não-serializado do usuário
compartilhado em frontend.e2e.spec.ts foi eliminado pelo commit d0161f6d
(Closes #767), que unificou todos os logins no helper adminHeaders travado
por advisory lock. Nenhuma mudança de código; apenas changelog + impl plan.
This commit is contained in:
parent
fcefcac4e6
commit
dca7c8a8ce
2 changed files with 91 additions and 0 deletions
1
docs/changelog/2026-08-24-e2e-frontend-login-shadow.md
Normal file
1
docs/changelog/2026-08-24-e2e-frontend-login-shadow.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
**E2E-FRONTEND-LOGIN-SHADOW (#811) — fechada como satisfeita por #767:** o "shadow local de `adminHeaders`" citado em `tests/e2e/frontend.e2e.spec.ts` (login REST do usuário compartilhado sem advisory lock) não existe mais no HEAD. O commit `d0161f6d` (_test(e2e): unificar logins do usuário de teste no helper adminHeaders com advisory lock_, Closes #767), mergeado 2026-08-24 (após a abertura da #811 em 2026-08-23), removeu o login inline e o substituiu pelo helper `adminHeaders` de `tests/helpers/adminApi.ts` (que carrega `withAdvisoryLock(ADMIN_LOGIN_LOCK_KEY, …)`). Verificação por grep no estado atual: `users/login` aparece só em `tests/helpers/adminApi.ts`; nenhum construtor custom de cookie `payload-token` fora do helper (exceto `campaignHomePixel`, intocável por contrato do #760). Todas as 14 chamadas em `frontend.e2e.spec.ts` usam o helper travado. Nenhuma mudança de código — apenas registro.
|
||||
90
docs/plans/e2e-frontend-login-shadow-impl.md
Normal file
90
docs/plans/e2e-frontend-login-shadow-impl.md
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
# Impl: E2E-FRONTEND-LOGIN-SHADOW — shadow local de adminHeaders ignora o advisory lock
|
||||
|
||||
Status: aprovado-parcial (defeito já resolvido por #767)
|
||||
Atualizado em: 2026-08-24
|
||||
Issue: #811
|
||||
Intenção: body da Issue #811 (sem doc `docs/plans/` linkado)
|
||||
Appetite restante: herdado (~0,25 dia) — na prática 0 (ver abaixo)
|
||||
|
||||
## Leitura da intenção
|
||||
|
||||
- **Outcome:** Nenhuma família de e2e mantém login REST não-serializado do usuário
|
||||
compartilhado (`dev@payloadcms.com`) — evitar a race read-modify-write de
|
||||
sessões do Payload (perda de sessão → 403 no e2e full com 4 workers).
|
||||
- **O que NÃO negociar:** não mexer no retry 403→relogin do `campaignHomePixel`
|
||||
(#760); não trocar login de UI por API login nos specs de formulário; não
|
||||
serializar projetos/workers inteiros.
|
||||
- **O que reavaliar:** o "shadow local de `adminHeaders`" citado em
|
||||
`frontend.e2e.spec.ts:613` não existe mais no estado atual.
|
||||
|
||||
## Achado determinante (exploração)
|
||||
|
||||
- #811 foi criada em 2026-08-23T22:00Z. O commit `d0161f6d`
|
||||
_test(e2e): unificar logins do usuário de teste no helper adminHeaders com
|
||||
advisory lock (Closes #767)_ foi mergeado em 2026-08-24T18:42Z — **depois** da
|
||||
abertura da #811.
|
||||
- Esse commit removeu o login inline de `frontend.e2e.spec.ts` e o substituiu
|
||||
por `adminHeaders` importado de `../helpers/adminApi` (que carrega
|
||||
`withAdvisoryLock(ADMIN_LOGIN_LOCK_KEY, …)`). O shadow local desapareceu.
|
||||
- Verificação por grep no estado atual (branch = HEAD `fcefcac4`, sem diff vs
|
||||
`main`):
|
||||
- `users/login` aparece **só** em `tests/helpers/adminApi.ts` (o helper
|
||||
serializado). Zero ocorrências inline em `tests/e2e/*`.
|
||||
- Nenhum construtor custom de cookie `payload-token` fora do helper (exceto
|
||||
`campaignHomePixel`, que usa `adminHeaders` + retry 403 — intocável por
|
||||
contrato).
|
||||
- Todas as 14 chamadas em `frontend.e2e.spec.ts` usam `adminHeaders(request,
|
||||
baseURL)` (linhas 609, 819, 977, 1010, 1091, 1144, 1208, 1298, 1358, 1429,
|
||||
1497, …).
|
||||
|
||||
## Abordagem recomendada
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
A[Estado atual] --> B{grep confirma 0 login inline?}
|
||||
B -- sim --> C[Defeito já resolvido por #767]
|
||||
C --> D[Fechar #811 como satisfeita por #767]
|
||||
```
|
||||
|
||||
**Opções consideradas:** A) reaplicar `withAdvisoryLock` a um shadow inexistente
|
||||
| B) rotear o shadow (inexistente) pelo helper | C) apenas verificar e fechar.
|
||||
**Recomendação:** **C** — não há código a mudar; o requisito de aceite da #811 já
|
||||
está satisfeito no HEAD.
|
||||
**Rejeitadas:** A e B — o alvo (shadow local) não existe mais; mexer no arquivo
|
||||
para "corrigir" o inexistente seria churn sem benefício (viola "editar o dono,
|
||||
não gêmeo" e o princípio de não adicionar código morto).
|
||||
|
||||
### Componentes / mudanças
|
||||
|
||||
- **Sem migration** (muda só teste, e nem teste muda).
|
||||
- **Sem mudança de código.**
|
||||
|
||||
### Decisão de fechamento
|
||||
|
||||
- Fechar #811 com `Closes #811` apontando que #767 unificou os logins e resolveu
|
||||
a race; incluir o grep de verificação no corpo do PR.
|
||||
|
||||
## Fases verificáveis
|
||||
|
||||
1. **Verificação (feita):** grep de `users/login` e `payload-token` em
|
||||
`tests/e2e`, `tests/integration`, `tests/helpers` — limpo.
|
||||
2. **Fechamento:** PR com nota de verificação → `Closes #811`.
|
||||
|
||||
## Rabbit holes / Não escopo (engenharia)
|
||||
|
||||
- Não tocar o retry 403→relogin do `campaignHomePixel` (#760).
|
||||
- Não trocar login de UI por API login nos specs de formulário.
|
||||
- Não serializar projetos inteiros nem workers.
|
||||
|
||||
## Riscos e mitigação
|
||||
|
||||
- **Regressão futura (shadow volta):** sem guarda automática, um novo login
|
||||
inline pode reaparecer. Mitigação opcional (fora do appetite mínimo): um check
|
||||
de CI que falhe se `users/login` aparecer fora de `helpers/adminApi.ts`.
|
||||
Deixar para o humano decidir no GATE.
|
||||
|
||||
## Aceite de engenharia
|
||||
|
||||
- [x] Aceite de produto da intenção coberto (nenhum login não-serializado resta)
|
||||
- [x] Invariantes AGENTS/engineering-standards preservados (não mexeu em nada)
|
||||
- [x] Testes de domínio: N/A (nenhuma write path mudou)
|
||||
Loading…
Reference in a new issue