playwright-wait-for-timeout
waitForTimeout() in tests waits for arbitrary time instead of content/state.
Applies to: JavaScript, TypeScript
Why this matters
waitForTimeout() is a code smell in Playwright tests. It makes tests slow and flaky — if the system is faster than expected, the test wastes time; if slower, it fails intermittently. Use waitForSelector, expect(...).toBeVisible(), or other content-based waits instead.
Catch it before it ships
pip install stablestack # or: npx stablestackstablestack # scans your project, TEST009 includedstablestack explain TEST009TEST009 is part of the Pro rule set. See pricing — the free tier ships 24 checks with no signup.
False positive in your codebase? Suppress a single line with # noqa: TEST009
More Testing checks
skipped-tests
Test is marked as skipped.
TEST003async-mock-issues
Async function mocked incorrectly.
TEST004duplicate-test-helpers
Test helper function may be duplicated across test files.
TEST005e2e-test-duplication
E2E test contains duplicated code that should use shared helpers
TEST006e2e-console-capture
E2E tests should capture console errors to catch silent JavaScript failures.
TEST007missing-e2e-tests
Web projects should have Playwright E2E tests to catch console errors and broken pages.
TEST008playwright-test-slow-misuse
Detects incorrect test.slow() usage that silently skips tests.
TEST010instant-visibility-before-assert
safeVisible() or isVisible() result used in expect() — instant checks don't wait for elements to render, causing flaky tests.