Skip to content

added UI E2E Tests for Connections Page #60569#60738

Merged
vatsrahul1001 merged 1 commit intoapache:mainfrom
vishakha1411:vishakha
Feb 12, 2026
Merged

added UI E2E Tests for Connections Page #60569#60738
vatsrahul1001 merged 1 commit intoapache:mainfrom
vishakha1411:vishakha

Conversation

@vishakha1411
Copy link
Contributor

Description

Adds comprehensive end-to-end tests for the Connections page (/connections) following the Page Object Model pattern.

Test Coverage

  • ✅ List display and UI elements
  • ✅ CRUD operations (Create, Read, Update, Delete)
  • ✅ Extra fields JSON editor handling
  • ✅ Pagination
  • ✅ Sorting (ascending/descending)
  • ✅ Search and filtering
  • ✅ Cross-browser compatibility

Note: The Connections UI does not currently provide an export action or button. Exporting connections is supported via CLI/API only, so this behavior cannot be validated through UI-based E2E tests.

Testing Status

✅ Verified locally across Chromium, Firefox, and WebKit

Technical Highlights

  • Page Object Model pattern for maintainability
  • Dynamic test data with timestamps (no hardcoded values)
  • Browser-specific handling for WebKit dialog backdrop issues
  • Proper test data cleanup in beforeAll/afterAll
  • Uses testConfig for configuration

Acceptance Criteria Met

  • ✅ Follows POM pattern
  • ✅ Uses testConfig for configuration
  • ✅ Tests create/cleanup their own data
  • ✅ Works across Chromium, Firefox, and WebKit
  • ✅ No hardcoded values

Please let me know your suggestions, happy to make any changes if needed!

In case of an existing issue, reference it using one of the following:

@boring-cyborg boring-cyborg bot added the area:UI Related to UI/UX. For Frontend Developers. label Jan 18, 2026
@boring-cyborg
Copy link

boring-cyborg bot commented Jan 18, 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: [email protected]
    Slack: https://s.apache.org/airflow-slack

@vatsrahul1001
Copy link
Contributor

@vishakha1411 Thanks for the PR. I will review soon

@vishakha1411
Copy link
Contributor Author

I fixed the failing errors and removed redundant cross-browser compatibility tests. Since Playwright already executes the full test suite across all supported browsers, these tests were unnecessary. Please check now.

@vatsrahul1001
Copy link
Contributor

I fixed the failing errors and removed redundant cross-browser compatibility tests. Since Playwright already executes the full test suite across all supported browsers, these tests were unnecessary. Please check now.

Thanks @vishakha1411 I will review soon

@vishakha1411
Copy link
Contributor Author

@vatsrahul1001 I noticed some static checks failed. I tried to fix them by explicitly handling nullable string values, changing null to undefined for consistency, and fixing naming conventions. Hope it works now, please check!

@vatsrahul1001
Copy link
Contributor

@vishakha1411 Great first PR! there are several alignment issues with our existing patterns that need to be addressed specifically in pagination and filter/search tests. I suggest to you look at how these are implemented for other pages.

@vishakha1411
Copy link
Contributor Author

@vatsrahul1001 I have made the changes you pointed out.

Key Changes

  • Removed all waitForTimeout calls - replaced with expect.poll() and explicit element waits
  • Removed console logs
  • Improved pagination test - formatted according to already existing tests
  • Fixed filtering tests

@vishakha1411
Copy link
Contributor Author

@vatsrahul1001 @choo121600 I noticed that a few CRUD tests are failing on Chromium in CI, while the same tests pass on Firefox and WebKit. All tests are also passing locally for all browsers.
It seems like CI is sometimes unable to locate elements within the timeout in Chromium. Could you please suggest the best way to handle this? Would increasing timeouts be acceptable here, or is there a preferred approach for this?
Also, please let me know if any other changes are required in the code.

@vatsrahul1001
Copy link
Contributor

@vatsrahul1001 @choo121600 I noticed that a few CRUD tests are failing on Chromium in CI, while the same tests pass on Firefox and WebKit. All tests are also passing locally for all browsers. It seems like CI is sometimes unable to locate elements within the timeout in Chromium. Could you please suggest the best way to handle this? Would increasing timeouts be acceptable here, or is there a preferred approach for this? Also, please let me know if any other changes are required in the code.

@vishakha1411 As per the stacktrace from failure I see even after clicking on edit button edit form is not visible as per failure screenshot
image

  131 |     await expect(editButton).toBeVisible({ timeout: 5000 });
  132 |     await editButton.click();
> 133 |     await expect(this.connectionIdInput).toBeVisible({ timeout: 3000 });
      |                                          ^
  134 |   }

For debugging purposes, always try to look at the failure report. You can download the report from upload result steps.

There could be two issues here: either the edit button is not getting clicked correctly, or it's taking time to open the edit button. Yes, you can try increasing the timeout, and also confirm if the edit button is getting clicked correctly or not.

As you mentioned, it works locally fine, but I still suggest trying running test in UI mode, you can --ui-mode in breeze test command arg. It helps a lot in debugging

@vatsrahul1001
Copy link
Contributor

@vishakha1411 How are we progressing on this?

@vishakha1411
Copy link
Contributor Author

@vishakha1411 How are we progressing on this?

@vatsrahul1001 I made a few fixes to address the flaky tests. All the tests pass now. Please review and let me know if any changes are required.

@vatsrahul1001
Copy link
Contributor

@vishakha1411 How are we progressing on this?

@vatsrahul1001 I made a few fixes to address the flaky tests. All the tests pass now. Please review and let me know if any changes are required.

Thanks @vishakha1411 I will review soon!

@vatsrahul1001
Copy link
Contributor

@vishakha1411 can you look at failing tests? Also lets remove pagination and sorting test as discussed in comment. We will cover all testing behaviour in react unit tests

@vishakha1411
Copy link
Contributor Author

vishakha1411 commented Feb 12, 2026

@vatsrahul1001 I have fixed the failing tests and have removed the pagination and sorting tests as suggested. All the tests pass now.
PTAL. Thanks.

@vatsrahul1001
Copy link
Contributor

Nice!.

@vatsrahul1001 vatsrahul1001 merged commit 10f691a into apache:main Feb 12, 2026
129 checks passed
ytoprakc pushed a commit to ytoprakc/airflow that referenced this pull request Feb 12, 2026
@vishakha1411 vishakha1411 deleted the vishakha branch February 13, 2026 03:53
Ratasa143 pushed a commit to Ratasa143/airflow that referenced this pull request Feb 15, 2026
choo121600 pushed a commit to choo121600/airflow that referenced this pull request Feb 22, 2026
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.

UI E2E Test || ADMIN-003: Verify Connections Page functionality

3 participants