[quarantine] worklog-timer.spec.ts — timing-dependent tests with fixed sleeps #53
Labels
No labels
blocked:gate-fetch
blocked:gate-implement
blocked:needs-attention
blocked:needs-decision
blocked:needs-human
blocked:needs-local-checkout
blocked:no-changes
bug
feature-request
in-progress
needs-decompose
needs-triage
ops-task
quickfix
security/high
security/low
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/nodedesk#53
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Quarantined under Mark/nodedesk#49 (Phase 2 quality gates).
Test location
tests/worklog-timer.spec.tspage.waitForTimeoutcalls and races)Reproduction
Note: Flaky on slow runners, may timeout or race timer render.
Failure mode
page.waitForTimeout(1100)— assumes timer increments within 1100ms.page.waitForTimeout(500)— assumes timer starts within 500ms after reload.expect(page.getByText("00:00")).toBeVisible()— races timer's first render.Root cause
Fixed sleeps are the canonical Playwright anti-pattern. Wall-clock dependency causes flakes on slow runners or under load. The timer is a client-side React component; its render/update timing is non-deterministic.
Acceptance criteria for un-quarantine
waitForTimeout(1100)withexpect(locator).toBeVisible({ timeout: 2000 })polling on the timer display.waitForTimeout(500)with explicit wait for "Stop" button after reload.References
docs/ci/audit.md§3.3Quarantined all 3 tests in
tests/worklog-timer.spec.tsunder@quarantinetag.Changes:
{ tag: "@quarantine" }to each testnpm testrun via--grep-invert @quarantinenpm run test:e2e:quarantineRoot cause: Fixed sleeps (
waitForTimeout(1100),waitForTimeout(500)) are the canonical Playwright anti-pattern. Wall-clock dependency causes flakes on slow runners or under load.Un-quarantine criteria (from #53):
waitForTimeout(1100)withexpect(locator).toBeVisible({ timeout: 2000 })pollingwaitForTimeout(500)with explicit wait for "Stop" button after reloadCommit:
b299743onci/quality-gates-matrix(PR #45)