Skip to content

[Desktop E2E] reverse sidebar resize drag still flakes after #4546 #4622

Description

@M4n5ter

What happened

The Desktop E2E test below still fails intermittently under concurrent Linux/Xvfb CI load after #4546 attempted to stabilize it:

apps/desktop/e2e/sidebar-geometry.spec.ts

resize handle drag from its vertical centre changes the column width

The observed run completed the first widening drag, began the reverse drag, and saw the handle enter data-resizing; however, the wrapper width never became smaller than widenedWidth - 40 before the 60-second test timeout.

Expected behavior: after the second grab reports data-resizing, moving the pointer 80 pixels left should deterministically narrow the sidebar and satisfy the width assertion.

This failure occurred on PR #4601, whose diff does not touch the sidebar, resize implementation, geometry spec, or related CSS. A simultaneous CI run for the stacked PR #4608, which includes #4601, passed all 107 Desktop E2E tests. The evidence therefore points to a remaining test/compositor timing race rather than a regression introduced by #4601.

How to reproduce

The failure is intermittent and was observed in the normal CI topology:

  1. Start four isolated Xvfb displays.

  2. Run the complete Desktop E2E suite with four Playwright workers:

    MAKA_E2E_X_DISPLAY_BASE=90 npm exec -w @maka/desktop -- playwright test \
      --config e2e/playwright.config.ts \
      --workers=4
  3. Observe the reverse-width poll in sidebar-geometry.spec.ts:157 time out even though the second data-resizing assertion passed.

For focused stress reproduction, retain the same isolated-display topology and repeat:

npm exec -w @maka/desktop -- playwright test \
  --config e2e/playwright.config.ts \
  e2e/sidebar-geometry.spec.ts \
  --grep "resize handle drag" \
  --workers=4 \
  --repeat-each=20

Do not replace the width assertion with a fixed delay or simply enlarge the timeout; the existing failure already consumed the full test budget.

Environment

  • Maka commit: 5bab6b71f600bf6cb6633dade953ad5b85f092a8
  • OS: GitHub Actions Linux runner with four Xvfb displays
  • Surface: Desktop E2E
  • Test runner: Playwright, four workers

Logs, screenshots, or additional context

Failure:

Error: Test timeout of 60000ms exceeded

await expect.poll(() => wrapperWidth(wrapper)).toBeLessThan(widenedWidth - 40);

The earlier stabilization in #4546 already moved the pointer to the handle's live center and asserted data-resizing immediately after each grab. This recurrence narrows the remaining problem: the second grab is accepted, but the reverse pointer move does not reliably produce the expected live width update under concurrent Xvfb load. Capture the pointer position, handle bounds, wrapper width, and resize events around the second drag before choosing a fix.

Created with OpenAI Codex assistance.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions