The flake lab is a deliberately isolated TypeScript Playwright slice for studying unstable UI patterns without weakening normal gates.
@flaky-demo marks examples that are safe to study locally but excluded from PR gates and nightly by default.@not-ci marks examples that are unsuitable for scheduled automation and should stay local/manual only.@desktop keeps mouse-only behavior out of mobile-emulation projects.cd stacks/ts-playwright
THE_INTERNET_BASE_URL=http://localhost:7080 npm run test:flake-lab
Run @not-ci examples only when you are deliberately investigating the interaction:
cd stacks/ts-playwright
THE_INTERNET_BASE_URL=http://localhost:7080 npx playwright test --project=chromium --grep @not-ci
| Cause | Example scenario | Safer pattern |
|---|---|---|
| Randomized content | Dynamic Content, Typos, A/B Testing | Assert allowed variants or stabilize test data. |
| Timing-sensitive UI | Entry Ad, Exit Intent | Scope to local/manual runs unless the trigger is deterministic. |
| Optional DOM elements | Disappearing Elements | Assert the stable core plus an allowed optional set. |
| Layout movement | Shifting Content | Use bounded geometry checks or move to visual tooling. |
| Heavy traversal | Large and Deep DOM | Prefer targeted selectors and keep performance experiments out of smoke. |
| Pointer sequencing | JQuery UI Menus, Hovers, Context Menu | Tag as desktop-only and avoid mobile projects. |
| External/resource timing | Slow Resources | Use bounded request timeouts and assert the timeout contract. |
@flaky-demo.@not-ci and document the manual learning value.