S3-FOLLOWUP — e2e local com --no-deps + projetos paralelos colide no seedTestUser #72

Closed
opened 2026-08-18 21:23:42 +00:00 by fsolla · 1 comment
Owner
id depends priority
S3-FOLLOWUP
S3
P3

Rodar projetos e2e em paralelo com --no-deps colide no seedTestUser (ValidationError: email)

Contexto (S3, 2026-08-18): para validar localmente o describe serial da seção de conteúdos + o smoke do picker do admin, rodei playwright test ... --project=frontend --project=admin --no-deps -g "...". Com 2 workers, os beforeAll dos dois projetos chamam seedTestUser() concorrentemente (delete + create do mesmo dev@payloadcms.com) → o create de um worker falha com ValidationError: The following field is invalid: email (corrida delete/create) e o outro worker fica com o usuário deletado no meio do teste → falhas fantasma (o picker não renderizava e o teste morria no Reexibir).

Evidência: tests/helpers/seedUser.ts:29 (payload.create); os dois beforeAll (frontend.e2e.spec.ts describe da seção e admin.e2e.spec.ts).

Impacto real: NENHUM no CI — os projetos rodam na cadeia de dependências (setup → campaign → frontend → admin), sequenciais por construção; --no-deps é só uma conveniência local. O tropeço é o diagnóstico: um agente local com --no-deps + -g multi-projeto pode gastar horas achando que quebrou o produto.

Correções possíveis (em dupla, como #40): (a) fazer seedTestUser idempotente sob concorrência (upsert em vez de delete+create — requer Local API fora de transação? verificar); (b) documentar no playwright.config.ts que --no-deps exige --workers=1; (c) mover o seed do beforeAll para o setup project compartilhado. Preferência: (b) é o corte honesto do rabbit hole; (a) se um dia o CI permitir paralelismo de projetos.

--- id: S3-FOLLOWUP depends: [S3] priority: P3 --- ## Rodar projetos e2e em paralelo com `--no-deps` colide no `seedTestUser` (ValidationError: email) **Contexto (S3, 2026-08-18):** para validar localmente o describe serial da seção de conteúdos + o smoke do picker do admin, rodei `playwright test ... --project=frontend --project=admin --no-deps -g "..."`. Com 2 workers, os `beforeAll` dos dois projetos chamam `seedTestUser()` **concorrentemente** (delete + create do mesmo `dev@payloadcms.com`) → o create de um worker falha com `ValidationError: The following field is invalid: email` (corrida delete/create) e o outro worker fica com o usuário deletado no meio do teste → falhas fantasma (o picker não renderizava e o teste morria no `Reexibir`). **Evidência:** `tests/helpers/seedUser.ts:29` (payload.create); os dois `beforeAll` (`frontend.e2e.spec.ts` describe da seção e `admin.e2e.spec.ts`). **Impacto real:** NENHUM no CI — os projetos rodam na cadeia de dependências (setup → campaign → frontend → admin), sequenciais por construção; `--no-deps` é só uma conveniência local. O tropeço é o diagnóstico: um agente local com `--no-deps` + `-g` multi-projeto pode gastar horas achando que quebrou o produto. **Correções possíveis (em dupla, como #40):** (a) fazer `seedTestUser` idempotente sob concorrência (upsert em vez de delete+create — requer Local API fora de transação? verificar); (b) documentar no `playwright.config.ts` que `--no-deps` exige `--workers=1`; (c) mover o seed do `beforeAll` para o `setup` project compartilhado. Preferência: (b) é o corte honesto do rabbit hole; (a) se um dia o CI permitir paralelismo de projetos.
fsolla added a new dependency 2026-08-18 21:23:50 +00:00
Author
Owner

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

Tracker migrado para o GitHub — continue em #gh774 (github.com/fsolla/teqo/issues/774). 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.

Reference: fsolla/teqo#72
No description provided.