Skip to content

Test: delay-options E2E specs blocked on timing simulation #76

@jjeff

Description

@jjeff

Problem

Three tests in `tests/e2e/delay-options.spec.ts` plus one in `tests/e2e/feature-demos.spec.ts` are skipped citing "complex delay simulation" or unreliable timer behavior:

  • `delay-options.spec.ts:6` — should delay drag start with delay option
  • `delay-options.spec.ts:43` — should only delay on touch with delayOnTouchOnly
  • `delay-options.spec.ts:90` — should cancel delayed drag if moved beyond threshold
  • `feature-demos.spec.ts:228` — requires holding for delay period before drag starts

Hypothesis

The tests use `page.waitForTimeout` to bracket the delay window, but Playwright's synthetic mouse events don't reliably interact with our `setTimeout`-based delay timer when the timing is tight.

Suggested approach

  • Use Playwright's clock API (`page.clock.install()` if available, otherwise `page.evaluate` with a custom mock) to deterministically advance time across the delay boundary.
  • For `delayOnTouchOnly`, drive the test through the touchscreen API rather than mouse + waitForTimeout.
  • Threshold cancellation can use the pointer-pipeline pattern from `on-move.spec.ts` (low-level `page.mouse` steps).

Refs #35 — discovered during E2E skip triage.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtestTest coverage / quality

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions