🧪 test(ci): gate Playwright on QA fixture readiness#589
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📝 WalkthroughWalkthroughPlaywright authentication setup now polls Possibly related PRs
🚥 Pre-merge checks | ✅ 2✅ Passed checks (2 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@e2e/playwright/auth.setup.ts`:
- Around line 24-46: Update the fixture validation logic around the container
checks to define all 29 expected displayName/group entries and verify every
entry is present. Preserve the update-result validation only for fixtures that
require updates, rather than applying it globally, so missing or unenriched
fixtures cannot pass through sentinel checks.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: b8122f05-6444-409d-87df-961248380706
⛔ Files ignored due to path filters (1)
CHANGELOG.mdis excluded by!CHANGELOG.md
📒 Files selected for processing (4)
.github/tests/e2e-playwright-workflow.test.tsdocs/cucumber-reliability.mde2e/playwright/auth.setup.tstest/qa-compose.yml
Rescued from the
fix/playwright-qa-readinessworktree during the main↔dev reconciliation audit — this commit had reached neither branch and would have been lost when that worktree was cleaned up.It's the root-cause fix for the Playwright flake that burned an rc.5 cut cycle (
apiRequestContext.post: Timeout 45000mson the notification-bell spec, plus the intermittent "Start drydock" Cucumber failures).What it does
e2e/playwright/auth.setup.ts— auth setup now polls/api/v1/containersuntil the complete 29-container QA fixture snapshot is present (specific named containers with theirdd.grouplabels and a populatedresult) before writingstorageState. Previously specs could start against a half-populated store, so assertions raced the startup watcher scan. 180s poll budget at 2s intervals, setup timeout raised to 240s.test/qa-compose.yml— parks the local and remote watcher crons on0 0 29 2 *withJITTER=0andWATCHEVENTS=false, so no scheduled or event-driven rescan can mutate fixtures mid-suite. The startup scan still runs; only the later races are removed..github/tests/e2e-playwright-workflow.test.ts— coverage asserting the readiness gating stays wired up.Verification
Full pre-push gate green: clean-tree, ts-nocheck, biome, qlty, qlty-smells, scripts-test, workflow-tests (9 files / 46 tests), typecheck-ui, coverage (app + ui both at 100%), build.
✨ Added
storageState.🔧 Changed
Increased Playwright setup timeout to 240 seconds with a 180-second readiness polling budget.
Disabled scheduled and event-driven watcher rescans during browser tests while preserving the startup scan.
Added required container, label, result, and update-availability checks.
Readiness validation is tightly coupled to a hardcoded set of 29 containers and labels.
The
0 0 29 2 *watcher schedule should remain intentional and documented as a disabled schedule.