shahar1 opened a new pull request, #74200:
URL: https://github.com/apache/airflow/pull/74200
This is an attempt to deflake the WebKit tests that often fail.
This change fixes two tests: one could read the table before its translated
column headers had loaded, and another could mistake a closing filter menu for
an open one. The page object now waits for the required headers and checks that
the menu is truly open. The filter test passed five repeated runs, and the full
backfill test file passed.
<details>
<summary>AI Summary</summary>
Several tests in `tests/e2e/specs/backfill.spec.ts` fail on WebKit in CI.
Both fixes live in the page object `tests/e2e/pages/BackfillPage.ts`.
**`Column "Reprocess Behavior" not found. Available columns: From, To,
backfill.reprocessBehavior, ...`** (flaky). The Backfills page translates its
headers from the `common` and `components` i18next namespaces, which load in
parallel, and with `useSuspense: false` the "Reprocess Behavior" header renders
its raw key until its namespace arrives. `findBackfillRowByDateRange` only
waited for "From" and "To" before snapshotting the column map, so a snapshot
taken in that window made the detail lookup throw. The poll now waits for every
column the detail reader uses.
**`Verify backfill table filters`: tooltip positioner intercepts the first
menu item** (consistent on WebKit, at the second `openFilterMenu()` call).
After `Escape` closes the menu, Zag restores keyboard focus to the trigger, so
its tooltip opens on focus. The closed menu content stays mounted and visible
with `data-state="closed"` until its exit animation ends, which a loaded WebKit
delays for many seconds, so `getByRole("menu").isVisible()` stayed true for the
stale menu, the page object never re-clicked the trigger, and the probe on the
stale first item hit the tooltip (which sits above the menu since #71731).
`openFilterMenu` now only counts a menu whose `data-state` is `open`, so the
loop re-clicks the trigger, which closes the tooltip and reopens the menu.
Verification (WebKit via the Playwright Docker image against the current UI
build, since the failure needs a loaded runner):
- baseline, `--cpus 0.45`, filters test x3: 3/3 fail with the exact CI
intercept signature
- this branch, `--cpus 0.45`, filters test x5: 0 intercepts
- this branch, full `backfill.spec.ts` at normal speed: 9/9 pass
Follow-up outside this PR: the trigger tooltip can show over an open menu
via keyboard focus (`Menu/MenuTrigger.tsx`).
</details>
---
##### Was generative AI tooling used to co-author this PR?
- [X] Yes — Claude Code (Fable 5.1)
Generated-by: Claude Code (Fable 5.1) following [the
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]