S6-FOLLOWUP — e2e — CLI Playwright ignora filtros --grep/posicionais; test:e2e:affected roda a suíte completa silenciosamente #58

Closed
opened 2026-08-18 17:01:57 +00:00 by fsolla · 4 comments
Owner
id depends serializes priority
S6-FOLLOWUP
S6
P2

Plano: docs/plans/s6-followup-playwright-filtros-cli-ignorados.md

Problema (evidência empírica — binário do repo playwright@1.58.2)

Invocação Resultado
playwright test --config=X frontend -g "grade" 164 testes (filtros ignorados)
playwright test --config=X a.spec.ts (config mínima) todos rodam (posicional ignorado)
playwright test --config=X --grep alpha (config mínima) todos rodam (grep ignorado)
playwright test --config=X -- tests/e2e/frontend.e2e.spec.ts 11 testes — a forma do gate:ci, que funciona
pnpm test:e2e:affected -- tests/e2e/campaignHomeActions.e2e.spec.ts 173 testes — run-e2e-affected.mjs passa paths SEM -- → suíte completa silenciosamente

Padrão observado: (1) posicionais só filtram com -- antes; (2) a presença de -g/--grep quebra a filtragem inteira (até o posicional companheiro); (3) --list não respeita nenhum filtro. Reproduzido em config mínima com o mesmo binário (bug do pacote, não do repo).

Correção proposta

  1. scripts/run-e2e-affected.mjs: inserir -- antes dos paths (playwrightArgs.push('--', ...specs)); verificar por contagem de testes.
  2. -g/--list: investigar causa no playwright/commander (changelog upstream / pin); enquanto isso documentar o contorno --project=<família> --no-deps (único filtro que funciona).
  3. Não tocar CI (--shard ok) nem o gate:ci (já usa a forma --).
--- id: S6-FOLLOWUP depends: [S6] serializes: [] priority: P2 --- Plano: [`docs/plans/s6-followup-playwright-filtros-cli-ignorados.md`](docs/plans/s6-followup-playwright-filtros-cli-ignorados.md) ## Problema (evidência empírica — binário do repo `playwright@1.58.2`) | Invocação | Resultado | | --- | --- | | `playwright test --config=X frontend -g "grade"` | 164 testes (filtros ignorados) | | `playwright test --config=X a.spec.ts` (config mínima) | todos rodam (posicional ignorado) | | `playwright test --config=X --grep alpha` (config mínima) | todos rodam (grep ignorado) | | `playwright test --config=X -- tests/e2e/frontend.e2e.spec.ts` | **11 testes** — a forma do gate:ci, que funciona | | `pnpm test:e2e:affected -- tests/e2e/campaignHomeActions.e2e.spec.ts` | **173 testes** — `run-e2e-affected.mjs` passa paths SEM `--` → suíte completa silenciosamente | Padrão observado: (1) posicionais só filtram com `--` antes; (2) a presença de `-g`/`--grep` quebra a filtragem inteira (até o posicional companheiro); (3) `--list` não respeita nenhum filtro. Reproduzido em config mínima com o mesmo binário (bug do pacote, não do repo). ## Correção proposta 1. `scripts/run-e2e-affected.mjs`: inserir `--` antes dos paths (`playwrightArgs.push('--', ...specs)`); verificar por contagem de testes. 2. `-g`/`--list`: investigar causa no playwright/commander (changelog upstream / pin); enquanto isso documentar o contorno `--project=<família> --no-deps` (único filtro que funciona). 3. Não tocar CI (`--shard` ok) nem o `gate:ci` (já usa a forma `--`).
fsolla added the
blocked
prio:P2
labels 2026-08-18 17:01:57 +00:00
fsolla added
ready
and removed
blocked
labels 2026-08-18 19:32:59 +00:00
Author
Owner

Promovido a ready: plano de intenção em main (ciclo OPS17 — pnpm agent:ready).

Promovido a `ready`: plano de intenção em `main` (ciclo OPS17 — `pnpm agent:ready`).
fsolla added
in-progress
and removed
ready
labels 2026-08-18 20:54:56 +00:00
Author
Owner

Claimed by agent run at 2026-08-18T20:54:56.800Z. Lock otimista: outro claim deve falhar e re-rodar pnpm agent:claim.

Claimed by agent run at 2026-08-18T20:54:56.800Z. Lock otimista: outro claim deve falhar e re-rodar `pnpm agent:claim`.
fsolla added
done
in-prod
and removed
in-progress
labels 2026-08-18 22:44:51 +00:00
Author
Owner

Merged em main via PR #76 — done + in-prod. Deploy de produção segue o verificador ci.yml (gated).

Merged em main via PR #76 — `done` + `in-prod`. Deploy de produção segue o verificador `ci.yml` (gated).
Author
Owner

Entregue via PR #76 (mergeado 2026-08-18 22:44, CI completo verde incl. e2e full; main CI + deploy pós-merge em andamento). Causa raiz diverge da hipótese do plano: o commander parseia posicionais e -g/--list funcionam — quem arrastava a suíte era o closure de dependências dos projects no dev mode (setup←campaign←frontend←admin): run-e2e-affected.mjs agora gera test:e2e <passthrough verbatim> --no-deps -- <paths> (helpers puros em scripts/lib/playwright-e2e-args.mjs, unit-pinned), e o script entrou em HIGH_RISK_EXACT. Impl plan: docs/plans/s6-followup-playwright-filtros-cli-ignorados-impl.md. Débitos do /simplify: todos absorvidos na entrega (verbatim passthrough, --no-deps para flags de filtro, hardening do gate, docs); nada registrado como Issue nova.

Entregue via PR #76 (mergeado 2026-08-18 22:44, CI completo verde incl. e2e full; main CI + deploy pós-merge em andamento). Causa raiz diverge da hipótese do plano: o commander parseia posicionais e `-g`/`--list` funcionam — quem arrastava a suíte era o closure de dependências dos projects no dev mode (`setup←campaign←frontend←admin`): `run-e2e-affected.mjs` agora gera `test:e2e <passthrough verbatim> --no-deps -- <paths>` (helpers puros em `scripts/lib/playwright-e2e-args.mjs`, unit-pinned), e o script entrou em `HIGH_RISK_EXACT`. Impl plan: `docs/plans/s6-followup-playwright-filtros-cli-ignorados-impl.md`. Débitos do /simplify: todos absorvidos na entrega (verbatim passthrough, `--no-deps` para flags de filtro, hardening do gate, docs); nada registrado como Issue nova.
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#58
No description provided.