Skip to content

Refactor Playwright tests in dag-calendar-tab (#63409)#64191

Open
snesan821 wants to merge 3 commits intoapache:mainfrom
snesan821:fix-playwright-tests-63409
Open

Refactor Playwright tests in dag-calendar-tab (#63409)#64191
snesan821 wants to merge 3 commits intoapache:mainfrom
snesan821:fix-playwright-tests-63409

Conversation

@snesan821
Copy link
Copy Markdown

@snesan821 snesan821 commented Mar 24, 2026

Description

This PR addresses Playwright testing anti-patterns outlined in Issue #63409, specifically focusing on the DagCalendarTab page object.

Changes:

  • Removed deprecated page.waitForFunction() DOM query used to count calendar cells.
  • Implemented web-first assertion (expect(locator).toBeVisible()) utilizing existing calendarCells locator to ensure the calendar grid is fully loaded and stable.

closes: #63409


Was generative AI tooling used to co-author this PR?
  • Yes (Kiro Agentic IDE)

Generated-by: Kiro following the guidelines


@boring-cyborg
Copy link
Copy Markdown

boring-cyborg bot commented Mar 24, 2026

Congratulations on your first Pull Request and welcome to the Apache Airflow community! If you have any issues or are unsure about any anything please check our Contributors' Guide (https://github.com/apache/airflow/blob/main/contributing-docs/README.rst)
Here are some useful points:

  • Pay attention to the quality of your code (ruff, mypy and type annotations). Our prek-hooks will help you with that.
  • In case of a new feature add useful documentation (in docstrings or in docs/ directory). Adding a new operator? Check this short guide Consider adding an example DAG that shows how users should use it.
  • Consider using Breeze environment for testing locally, it's a heavy docker but it ships with a working Airflow and a lot of integrations.
  • Be patient and persistent. It might take some time to get a review or get the final approval from Committers.
  • Please follow ASF Code of Conduct for all communication including (but not limited to) comments on Pull Requests, Mailing list and Slack.
  • Be sure to read the Airflow Coding style.
  • Always keep your Pull Requests rebased, otherwise your build might fail due to changes not related to your commits.
    Apache Airflow is a community-driven project and together we are making it better 🚀.
    In case of doubts contact the developers at:
    Mailing List: dev@airflow.apache.org
    Slack: https://s.apache.org/airflow-slack

@boring-cyborg boring-cyborg bot added the area:UI Related to UI/UX. For Frontend Developers. label Mar 24, 2026
Copy link
Copy Markdown
Member

@choo121600 choo121600 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to switch these to expect().toBeVisible() instead of waitFor()?
This could make the test more explicit and rely on Playwright’s built-in retry + assertion behavior.

- Replace .waitFor() with expect().toBeVisible() in DagCalendarTab
- Add domcontentloaded wait and toBeAttached/toBeEnabled checks in DagsPage.triggerDag
- Add grid container visibility check and fallback locator in RequiredActionsPage.clickOnTaskInGrid
- Increase combobox timeout and add listbox visibility wait in ConnectionsPage.fillConnectionForm
- Wrap XComsPage.navigate in toPass block for WebKit stability
@snesan821
Copy link
Copy Markdown
Author

Hey @choo121600, thanks for the review! That completely makes sense. I've updated the DagCalendarTab tests to use expect().toBeVisible() (and toBeHidden()) to leverage Playwright's built-in web-first assertions and retry behavior.

Just a heads-up: while making this update, I also included a few targeted stability patches in this push to help resolve the Playwright WebKit E2E test flakes we were seeing fail the CI. These changes mostly involve adding explicit DOM readiness waits and relaxing some brittle timeouts across DagsPage, RequiredActionsPage, ConnectionsPage, and XComsPage.

Let me know if everything looks good to go now!

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

Labels

area:UI Related to UI/UX. For Frontend Developers.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

E2E: Improve Playwright test patterns in dag-calendar-tab.spec.ts

2 participants