e2e — unificar logins do usuário de teste no helper com advisory lock (frontend/admin specs) #116

Closed
opened 2026-08-19 23:51:20 +00:00 by fsolla · 1 comment
Owner
id depends serializes priority kind
e2e-admin-login-lock
P2 chore

Origem: simplify/capture-review-debts do S10 (#94, 2026-08-19).

O e2e do S10 trouxe à tona uma corrida de login do usuário de teste (dev@payloadcms.com): Payload guarda sessões de auth como array read-modify-write no documento do usuário (addSessionToUser — mesma classe documentada no note do WebAuthn), então dois workers logando o mesmo usuário em paralelo perdem uma sessão — o token do perdedor vira 403 em toda requisição admin.

Corrigido no S10: tests/helpers/adminApi.ts serializa o login com advisory lock no Postgres (pg_advisory_lock), usado pelos specs campaignHomePixel e campaignNewsletter; seedTestUser virou create-if-missing (sem janela de usuário ausente, sem reset de senha que invalida sessões vivas).

Débito restante: os specs frontend.e2e.spec.ts (10 logins inline), admin.e2e.spec.ts e demais continuam com login inline SEM o lock — a corrida persiste entre eles (rara, pré-existente), e o cleanupTestUser do admin ainda cria janela de usuário ausente contra seeds concorrentes.

Ação: unificar os logins dos specs restantes no helper adminHeaders com advisory lock (e revisar cleanupTestUser para não apagar o usuário compartilhado sob seeds concorrentes).

--- id: e2e-admin-login-lock depends: [] serializes: [] priority: P2 kind: chore --- **Origem:** simplify/capture-review-debts do S10 (#94, 2026-08-19). O e2e do S10 trouxe à tona uma corrida de login do usuário de teste (`dev@payloadcms.com`): Payload guarda sessões de auth como array read-modify-write no documento do usuário (`addSessionToUser` — mesma classe documentada no note do WebAuthn), então dois workers logando o mesmo usuário em paralelo perdem uma sessão — o token do perdedor vira 403 em toda requisição admin. **Corrigido no S10:** `tests/helpers/adminApi.ts` serializa o login com advisory lock no Postgres (`pg_advisory_lock`), usado pelos specs `campaignHomePixel` e `campaignNewsletter`; `seedTestUser` virou create-if-missing (sem janela de usuário ausente, sem reset de senha que invalida sessões vivas). **Débito restante:** os specs `frontend.e2e.spec.ts` (10 logins inline), `admin.e2e.spec.ts` e demais continuam com login inline SEM o lock — a corrida persiste entre eles (rara, pré-existente), e o `cleanupTestUser` do admin ainda cria janela de usuário ausente contra seeds concorrentes. **Ação:** unificar os logins dos specs restantes no helper `adminHeaders` com advisory lock (e revisar `cleanupTestUser` para não apagar o usuário compartilhado sob seeds concorrentes).
fsolla added the
kind:chore
prio:P2
labels 2026-08-19 23:52:10 +00:00
Author
Owner

Tracker migrado para o GitHub — continue em #gh767 (github.com/fsolla/teqo/issues/767). Esta Issue Forgejo está fechada.

Tracker migrado para o GitHub — continue em #gh767 (github.com/fsolla/teqo/issues/767). Esta Issue Forgejo está fechada.
Sign in to join this conversation.
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#116
No description provided.