Replaces #60632 (closed due to merge conflicts) - #61080

Closed
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2
Closed

Replaces #60632 (closed due to merge conflicts)#61080
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2

Conversation

@shashbha14

@shashbha14shashbha14 commented Jan 26, 2026

Copy link
Copy Markdown
Contributor

Add E2E tests to verify the Variables page (/variables) functionality including list display, CRUD operations, search, pagination, sorting, and import.

Related: #60565
Closes: #60565

Test Coverage
This PR adds 14 comprehensive E2E tests covering all requirements:

Display & CRUD Operations
✅ Verify variables list displays correctly
✅ Create variable (regular)
✅ Create encrypted variable
✅ Edit variable (value and description)
✅ Delete single variable
✅ Delete multiple variables (bulk operation)
Search Functionality
✅ Search variables by exact key pattern
✅ Search variables with wildcard pattern
Import Functionality
✅ Import variables from JSON file
Pagination
✅ Verify pagination works (navigation between pages)
Sorting
✅ Sort variables by Key (ascending)
✅ Sort variables by Key (descending)
✅ Sort variables by Value
✅ Sort variables by Description
Implementation Details
Page Object Model Architecture
BasePage.ts (74 lines) - Base class with common page interactions
LoginPage.ts (61 lines) - Authentication handling
VariablesPage.ts (377 lines) - Comprehensive Variables page object with:
CRUD operations (create, edit, delete single/bulk)
Search functionality
Import from file
Pagination controls
Sorting capabilities
Helper methods for verification
Test Specifications
variables.spec.ts (378 lines) - 14 test cases with:
Dynamic test data generation using timestamps
Proper setup in beforeAll (creates 35 baseline variables for pagination)
Proper cleanup in afterAll (batch deletion of test data)
Fresh login in beforeEach
Configuration
testConfig.ts (32 lines) - Centralized configuration with environment variable support
playwright.config.ts - Cross-browser configuration (Chromium, Firefox, WebKit)
README.md (144 lines) - Comprehensive E2E testing documentation
Acceptance Criteria
All acceptance criteria from issue #60565 have been met:

All tests follow Page Object Model (POM) pattern
Tests use testConfig for configuration
Tests create/cleanup their own test data in beforeAll/afterAll
Tests work across Chromium, Firefox, and WebKit browsers
No hardcoded values - use dynamic data where possible
Files Added
airflow/ui/tests/e2e/pages/BasePage.ts
airflow/ui/tests/e2e/pages/LoginPage.ts
airflow/ui/tests/e2e/pages/VariablesPage.ts
airflow/ui/tests/e2e/specs/variables.spec.ts
airflow/ui/tests/e2e/testConfig.ts
airflow/ui/tests/e2e/README.md
airflow/ui/playwright.config.ts
airflow/ui/.gitignore
How to Run Tests
bash

Prerequisites

cd airflow/ui
pnpm install
pnpm exec playwright install

Ensure Airflow is running at http://localhost:8080

Then run tests:

All E2E tests

pnpm test:e2e

Interactive UI mode

pnpm test:e2e:ui

Specific browser

pnpm test:e2e:chromium
pnpm test:e2e:firefox
pnpm test:e2e:webkit
Related Issues
Parent: #59028 (UI E2E Test Scenarios - Implementation Meta issue)
Implements: #60565 (UI E2E Test || ADMIN-001: Verify Variables Page functionality)
Replaces: #60632 (closed due to merge conflicts)

- Implement Page Object Model for Variables page
- Add 14 comprehensive test cases covering CRUD operations
- Include search, pagination, sorting, and import tests
- Add proper test data cleanup in beforeAll/afterAll hooks
- Configure for Chromium, Firefox, and WebKit browsers
Fixesapache#60565
@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 can you look at failing checks. Also link the PR to issue

@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 How are we progressing on this?

ephraimbuddyand others added 26 commits February 2, 2026 14:48
* Change leftover import error path record to relative path
These too should use relative paths for import error
* fixup! Change leftover import error path record to relative path
* fixup! fixup! Change leftover import error path record to relative path
* Apply suggestion from @ephraimbuddy
…nts when (apache#60532)
the Kubernetes watch stream ended (e.g. due to timeout_seconds), even while
the pod was still running.
This change reconnects on watch termination, resumes from the last observed
resourceVersion, restarts on stale resourceVersion errors (410), and stops
only when the pod completes or is deleted. Permission-denied watches still fall
back to polling.
As part of this fix, kubeconfig loading is cached and _load_config no longer
returns an API client, clarifying its responsibility and avoiding repeated
config loading during watch reconnects.
Tests cover reconnection behavior, stale resourceVersion recovery, and clean
termination on pod completion or deletion.
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61089)
Bumps the core-ui-package-updates group with 11 updates in the /airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui directory:
| Package | From | To |
| --- | --- | --- |
| [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) | `0.90.4` | `0.90.8` |
| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.1` | `16.3.2` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.1` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
Updates `@hey-api/openapi-ts` from 0.90.4 to 0.90.8
- [Release notes](https://github.com/hey-api/openapi-ts/releases)
- [Changelog](https://github.com/hey-api/openapi-ts/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/hey-api/openapi-ts/compare/@hey-api/openapi-ts@0.90.4...@hey-api/openapi-ts@0.90.8)
Updates `@testing-library/react` from 16.3.1 to 16.3.2
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](testing-library/react-testing-library@v16.3.1...v16.3.2)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.1 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.1...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@hey-api/openapi-ts"
dependency-version: 0.90.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@testing-library/react"
dependency-version: 16.3.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: core-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#56791)
* Use common provider's get_async_connection in other providers
* Fix sftp and livy unit tests
…d unit tests. (apache#60717)
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61088)
* Bump the edge-ui-package-updates group across 1 directory with 11 updates
Bumps the edge-ui-package-updates group with 11 updates in the /providers/edge3/src/airflow/providers/edge3/plugins/www directory:
| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.0.9` | `25.0.10` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.3` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.0.17` | `4.0.18` |
Updates `@types/node` from 25.0.9 to 25.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.3 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.3...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.0.10
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: edge-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
* Fix WWW compile hash
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jens Scheffler <jscheffl@apache.org>
This reverts commit d0da0c0.
Reverts apache#56245, as we can't safely use the tag to determine the version. Since we will be dropping support for 3 in the next release anyways, we will just keep it as-is for 1 more release.
* Updating the Provider governance docs based on AIP-95
Following up from earlier discussions, here is a PR to update the providers governance documentation.
Feedback is welcome.
Full disclosure, I used Cursor to generate the RST doc
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Updated with clarifications
Updated with clarification around process governance and to address feedback.
* Addressed feedback
Added more clarifications to address feedback
* Fixed formatting issues
Fixed formatting issues in the docs
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
---------
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Co-authored-by: Wei Lee <weilee.rx@gmail.com>
…60932)
* Fix Simple Auth Manager UI dev server not starting in breeze
* Redirected prek output to file in dev mode
…he#60650)
* Fix unclosed aiohttp ClientSession in AzureDataFactoryAsyncHook
* If cancel_pipeline_run() creates a new connection
* Address review comments
* review: early return
* add tests: build_trigger_event
---------
Co-authored-by: Akshay <cruseakshay@users.noreply.github.com>
Co-authored-by: Daniel Standish <15932138+dstandish@users.noreply.github.com>
* Git provider should require common-compat >=1.12.0
Using git provider 0.2.1 with common.compat <1.12 causes issues in dag callbacks
* Update providers/git/pyproject.toml
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
* fixup! Update providers/git/pyproject.toml
---------
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
@shashbha14

Copy link
Copy Markdown
ContributorAuthor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please note that this PR is currently impossible to review as it includes changes in 300+ unrelated files and 100+ unrelated commits.
Also, considering the PR's description - I assume that you used AI to create this PR. Using AI is generally allowed in this project, but you should also adhere to specific guidelines written here, including an explicit declaration of its usage in the PR's description.
I'm closing this PR, if you want to continue working on this issue - please open a new one with only the required changes and according the guidelines.
Also, please make sure to give it a descriptive title.

@shahar1

Copy link
Copy Markdown
Contributor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 closed this Feb 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UI E2E Test || ADMIN-001: Verify Variables Page functionality

20 participants

@shashbha14@vatsrahul1001@shahar1@ephraimbuddy@vincbeck@arjav1528@suii2210@SameerMesiah97@Miretpl@ramitkataria@kacpermuda@jedcunningham@anishgirianish@potiuk@vikramkoka@Jkhall81@choo121600@haseebmalik18@cruseakshay@Lee-W
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Replaces #60632 (closed due to merge conflicts) - #61080

Closed
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2
Closed

Replaces #60632 (closed due to merge conflicts)#61080
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2

Conversation

@shashbha14

@shashbha14shashbha14 commented Jan 26, 2026

Copy link
Copy Markdown
Contributor

Add E2E tests to verify the Variables page (/variables) functionality including list display, CRUD operations, search, pagination, sorting, and import.

Related: #60565
Closes: #60565

Test Coverage
This PR adds 14 comprehensive E2E tests covering all requirements:

Display & CRUD Operations
✅ Verify variables list displays correctly
✅ Create variable (regular)
✅ Create encrypted variable
✅ Edit variable (value and description)
✅ Delete single variable
✅ Delete multiple variables (bulk operation)
Search Functionality
✅ Search variables by exact key pattern
✅ Search variables with wildcard pattern
Import Functionality
✅ Import variables from JSON file
Pagination
✅ Verify pagination works (navigation between pages)
Sorting
✅ Sort variables by Key (ascending)
✅ Sort variables by Key (descending)
✅ Sort variables by Value
✅ Sort variables by Description
Implementation Details
Page Object Model Architecture
BasePage.ts (74 lines) - Base class with common page interactions
LoginPage.ts (61 lines) - Authentication handling
VariablesPage.ts (377 lines) - Comprehensive Variables page object with:
CRUD operations (create, edit, delete single/bulk)
Search functionality
Import from file
Pagination controls
Sorting capabilities
Helper methods for verification
Test Specifications
variables.spec.ts (378 lines) - 14 test cases with:
Dynamic test data generation using timestamps
Proper setup in beforeAll (creates 35 baseline variables for pagination)
Proper cleanup in afterAll (batch deletion of test data)
Fresh login in beforeEach
Configuration
testConfig.ts (32 lines) - Centralized configuration with environment variable support
playwright.config.ts - Cross-browser configuration (Chromium, Firefox, WebKit)
README.md (144 lines) - Comprehensive E2E testing documentation
Acceptance Criteria
All acceptance criteria from issue #60565 have been met:

All tests follow Page Object Model (POM) pattern
Tests use testConfig for configuration
Tests create/cleanup their own test data in beforeAll/afterAll
Tests work across Chromium, Firefox, and WebKit browsers
No hardcoded values - use dynamic data where possible
Files Added
airflow/ui/tests/e2e/pages/BasePage.ts
airflow/ui/tests/e2e/pages/LoginPage.ts
airflow/ui/tests/e2e/pages/VariablesPage.ts
airflow/ui/tests/e2e/specs/variables.spec.ts
airflow/ui/tests/e2e/testConfig.ts
airflow/ui/tests/e2e/README.md
airflow/ui/playwright.config.ts
airflow/ui/.gitignore
How to Run Tests
bash

Prerequisites

cd airflow/ui
pnpm install
pnpm exec playwright install

Ensure Airflow is running at http://localhost:8080

Then run tests:

All E2E tests

pnpm test:e2e

Interactive UI mode

pnpm test:e2e:ui

Specific browser

pnpm test:e2e:chromium
pnpm test:e2e:firefox
pnpm test:e2e:webkit
Related Issues
Parent: #59028 (UI E2E Test Scenarios - Implementation Meta issue)
Implements: #60565 (UI E2E Test || ADMIN-001: Verify Variables Page functionality)
Replaces: #60632 (closed due to merge conflicts)

- Implement Page Object Model for Variables page
- Add 14 comprehensive test cases covering CRUD operations
- Include search, pagination, sorting, and import tests
- Add proper test data cleanup in beforeAll/afterAll hooks
- Configure for Chromium, Firefox, and WebKit browsers
Fixesapache#60565
@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 can you look at failing checks. Also link the PR to issue

@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 How are we progressing on this?

ephraimbuddyand others added 26 commits February 2, 2026 14:48
* Change leftover import error path record to relative path
These too should use relative paths for import error
* fixup! Change leftover import error path record to relative path
* fixup! fixup! Change leftover import error path record to relative path
* Apply suggestion from @ephraimbuddy
…nts when (apache#60532)
the Kubernetes watch stream ended (e.g. due to timeout_seconds), even while
the pod was still running.
This change reconnects on watch termination, resumes from the last observed
resourceVersion, restarts on stale resourceVersion errors (410), and stops
only when the pod completes or is deleted. Permission-denied watches still fall
back to polling.
As part of this fix, kubeconfig loading is cached and _load_config no longer
returns an API client, clarifying its responsibility and avoiding repeated
config loading during watch reconnects.
Tests cover reconnection behavior, stale resourceVersion recovery, and clean
termination on pod completion or deletion.
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61089)
Bumps the core-ui-package-updates group with 11 updates in the /airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui directory:
| Package | From | To |
| --- | --- | --- |
| [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) | `0.90.4` | `0.90.8` |
| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.1` | `16.3.2` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.1` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
Updates `@hey-api/openapi-ts` from 0.90.4 to 0.90.8
- [Release notes](https://github.com/hey-api/openapi-ts/releases)
- [Changelog](https://github.com/hey-api/openapi-ts/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/hey-api/openapi-ts/compare/@hey-api/openapi-ts@0.90.4...@hey-api/openapi-ts@0.90.8)
Updates `@testing-library/react` from 16.3.1 to 16.3.2
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](testing-library/react-testing-library@v16.3.1...v16.3.2)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.1 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.1...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@hey-api/openapi-ts"
dependency-version: 0.90.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@testing-library/react"
dependency-version: 16.3.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: core-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#56791)
* Use common provider's get_async_connection in other providers
* Fix sftp and livy unit tests
…d unit tests. (apache#60717)
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61088)
* Bump the edge-ui-package-updates group across 1 directory with 11 updates
Bumps the edge-ui-package-updates group with 11 updates in the /providers/edge3/src/airflow/providers/edge3/plugins/www directory:
| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.0.9` | `25.0.10` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.3` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.0.17` | `4.0.18` |
Updates `@types/node` from 25.0.9 to 25.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.3 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.3...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.0.10
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: edge-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
* Fix WWW compile hash
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jens Scheffler <jscheffl@apache.org>
This reverts commit d0da0c0.
Reverts apache#56245, as we can't safely use the tag to determine the version. Since we will be dropping support for 3 in the next release anyways, we will just keep it as-is for 1 more release.
* Updating the Provider governance docs based on AIP-95
Following up from earlier discussions, here is a PR to update the providers governance documentation.
Feedback is welcome.
Full disclosure, I used Cursor to generate the RST doc
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Updated with clarifications
Updated with clarification around process governance and to address feedback.
* Addressed feedback
Added more clarifications to address feedback
* Fixed formatting issues
Fixed formatting issues in the docs
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
---------
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Co-authored-by: Wei Lee <weilee.rx@gmail.com>
…60932)
* Fix Simple Auth Manager UI dev server not starting in breeze
* Redirected prek output to file in dev mode
…he#60650)
* Fix unclosed aiohttp ClientSession in AzureDataFactoryAsyncHook
* If cancel_pipeline_run() creates a new connection
* Address review comments
* review: early return
* add tests: build_trigger_event
---------
Co-authored-by: Akshay <cruseakshay@users.noreply.github.com>
Co-authored-by: Daniel Standish <15932138+dstandish@users.noreply.github.com>
* Git provider should require common-compat >=1.12.0
Using git provider 0.2.1 with common.compat <1.12 causes issues in dag callbacks
* Update providers/git/pyproject.toml
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
* fixup! Update providers/git/pyproject.toml
---------
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
@shashbha14

Copy link
Copy Markdown
ContributorAuthor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please note that this PR is currently impossible to review as it includes changes in 300+ unrelated files and 100+ unrelated commits.
Also, considering the PR's description - I assume that you used AI to create this PR. Using AI is generally allowed in this project, but you should also adhere to specific guidelines written here, including an explicit declaration of its usage in the PR's description.
I'm closing this PR, if you want to continue working on this issue - please open a new one with only the required changes and according the guidelines.
Also, please make sure to give it a descriptive title.

@shahar1

Copy link
Copy Markdown
Contributor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 closed this Feb 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UI E2E Test || ADMIN-001: Verify Variables Page functionality

20 participants

@shashbha14@vatsrahul1001@shahar1@ephraimbuddy@vincbeck@arjav1528@suii2210@SameerMesiah97@Miretpl@ramitkataria@kacpermuda@jedcunningham@anishgirianish@potiuk@vikramkoka@Jkhall81@choo121600@haseebmalik18@cruseakshay@Lee-W
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Replaces #60632 (closed due to merge conflicts) - #61080

Closed
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2
Closed

Replaces #60632 (closed due to merge conflicts)#61080
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2

Conversation

@shashbha14

@shashbha14shashbha14 commented Jan 26, 2026

Copy link
Copy Markdown
Contributor

Add E2E tests to verify the Variables page (/variables) functionality including list display, CRUD operations, search, pagination, sorting, and import.

Related: #60565
Closes: #60565

Test Coverage
This PR adds 14 comprehensive E2E tests covering all requirements:

Display & CRUD Operations
✅ Verify variables list displays correctly
✅ Create variable (regular)
✅ Create encrypted variable
✅ Edit variable (value and description)
✅ Delete single variable
✅ Delete multiple variables (bulk operation)
Search Functionality
✅ Search variables by exact key pattern
✅ Search variables with wildcard pattern
Import Functionality
✅ Import variables from JSON file
Pagination
✅ Verify pagination works (navigation between pages)
Sorting
✅ Sort variables by Key (ascending)
✅ Sort variables by Key (descending)
✅ Sort variables by Value
✅ Sort variables by Description
Implementation Details
Page Object Model Architecture
BasePage.ts (74 lines) - Base class with common page interactions
LoginPage.ts (61 lines) - Authentication handling
VariablesPage.ts (377 lines) - Comprehensive Variables page object with:
CRUD operations (create, edit, delete single/bulk)
Search functionality
Import from file
Pagination controls
Sorting capabilities
Helper methods for verification
Test Specifications
variables.spec.ts (378 lines) - 14 test cases with:
Dynamic test data generation using timestamps
Proper setup in beforeAll (creates 35 baseline variables for pagination)
Proper cleanup in afterAll (batch deletion of test data)
Fresh login in beforeEach
Configuration
testConfig.ts (32 lines) - Centralized configuration with environment variable support
playwright.config.ts - Cross-browser configuration (Chromium, Firefox, WebKit)
README.md (144 lines) - Comprehensive E2E testing documentation
Acceptance Criteria
All acceptance criteria from issue #60565 have been met:

All tests follow Page Object Model (POM) pattern
Tests use testConfig for configuration
Tests create/cleanup their own test data in beforeAll/afterAll
Tests work across Chromium, Firefox, and WebKit browsers
No hardcoded values - use dynamic data where possible
Files Added
airflow/ui/tests/e2e/pages/BasePage.ts
airflow/ui/tests/e2e/pages/LoginPage.ts
airflow/ui/tests/e2e/pages/VariablesPage.ts
airflow/ui/tests/e2e/specs/variables.spec.ts
airflow/ui/tests/e2e/testConfig.ts
airflow/ui/tests/e2e/README.md
airflow/ui/playwright.config.ts
airflow/ui/.gitignore
How to Run Tests
bash

Prerequisites

cd airflow/ui
pnpm install
pnpm exec playwright install

Ensure Airflow is running at http://localhost:8080

Then run tests:

All E2E tests

pnpm test:e2e

Interactive UI mode

pnpm test:e2e:ui

Specific browser

pnpm test:e2e:chromium
pnpm test:e2e:firefox
pnpm test:e2e:webkit
Related Issues
Parent: #59028 (UI E2E Test Scenarios - Implementation Meta issue)
Implements: #60565 (UI E2E Test || ADMIN-001: Verify Variables Page functionality)
Replaces: #60632 (closed due to merge conflicts)

- Implement Page Object Model for Variables page
- Add 14 comprehensive test cases covering CRUD operations
- Include search, pagination, sorting, and import tests
- Add proper test data cleanup in beforeAll/afterAll hooks
- Configure for Chromium, Firefox, and WebKit browsers
Fixesapache#60565
@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 can you look at failing checks. Also link the PR to issue

@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 How are we progressing on this?

ephraimbuddyand others added 26 commits February 2, 2026 14:48
* Change leftover import error path record to relative path
These too should use relative paths for import error
* fixup! Change leftover import error path record to relative path
* fixup! fixup! Change leftover import error path record to relative path
* Apply suggestion from @ephraimbuddy
…nts when (apache#60532)
the Kubernetes watch stream ended (e.g. due to timeout_seconds), even while
the pod was still running.
This change reconnects on watch termination, resumes from the last observed
resourceVersion, restarts on stale resourceVersion errors (410), and stops
only when the pod completes or is deleted. Permission-denied watches still fall
back to polling.
As part of this fix, kubeconfig loading is cached and _load_config no longer
returns an API client, clarifying its responsibility and avoiding repeated
config loading during watch reconnects.
Tests cover reconnection behavior, stale resourceVersion recovery, and clean
termination on pod completion or deletion.
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61089)
Bumps the core-ui-package-updates group with 11 updates in the /airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui directory:
| Package | From | To |
| --- | --- | --- |
| [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) | `0.90.4` | `0.90.8` |
| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.1` | `16.3.2` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.1` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
Updates `@hey-api/openapi-ts` from 0.90.4 to 0.90.8
- [Release notes](https://github.com/hey-api/openapi-ts/releases)
- [Changelog](https://github.com/hey-api/openapi-ts/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/hey-api/openapi-ts/compare/@hey-api/openapi-ts@0.90.4...@hey-api/openapi-ts@0.90.8)
Updates `@testing-library/react` from 16.3.1 to 16.3.2
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](testing-library/react-testing-library@v16.3.1...v16.3.2)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.1 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.1...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@hey-api/openapi-ts"
dependency-version: 0.90.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@testing-library/react"
dependency-version: 16.3.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: core-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#56791)
* Use common provider's get_async_connection in other providers
* Fix sftp and livy unit tests
…d unit tests. (apache#60717)
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61088)
* Bump the edge-ui-package-updates group across 1 directory with 11 updates
Bumps the edge-ui-package-updates group with 11 updates in the /providers/edge3/src/airflow/providers/edge3/plugins/www directory:
| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.0.9` | `25.0.10` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.3` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.0.17` | `4.0.18` |
Updates `@types/node` from 25.0.9 to 25.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.3 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.3...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.0.10
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: edge-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
* Fix WWW compile hash
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jens Scheffler <jscheffl@apache.org>
This reverts commit d0da0c0.
Reverts apache#56245, as we can't safely use the tag to determine the version. Since we will be dropping support for 3 in the next release anyways, we will just keep it as-is for 1 more release.
* Updating the Provider governance docs based on AIP-95
Following up from earlier discussions, here is a PR to update the providers governance documentation.
Feedback is welcome.
Full disclosure, I used Cursor to generate the RST doc
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Updated with clarifications
Updated with clarification around process governance and to address feedback.
* Addressed feedback
Added more clarifications to address feedback
* Fixed formatting issues
Fixed formatting issues in the docs
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
---------
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Co-authored-by: Wei Lee <weilee.rx@gmail.com>
…60932)
* Fix Simple Auth Manager UI dev server not starting in breeze
* Redirected prek output to file in dev mode
…he#60650)
* Fix unclosed aiohttp ClientSession in AzureDataFactoryAsyncHook
* If cancel_pipeline_run() creates a new connection
* Address review comments
* review: early return
* add tests: build_trigger_event
---------
Co-authored-by: Akshay <cruseakshay@users.noreply.github.com>
Co-authored-by: Daniel Standish <15932138+dstandish@users.noreply.github.com>
* Git provider should require common-compat >=1.12.0
Using git provider 0.2.1 with common.compat <1.12 causes issues in dag callbacks
* Update providers/git/pyproject.toml
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
* fixup! Update providers/git/pyproject.toml
---------
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
@shashbha14

Copy link
Copy Markdown
ContributorAuthor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please note that this PR is currently impossible to review as it includes changes in 300+ unrelated files and 100+ unrelated commits.
Also, considering the PR's description - I assume that you used AI to create this PR. Using AI is generally allowed in this project, but you should also adhere to specific guidelines written here, including an explicit declaration of its usage in the PR's description.
I'm closing this PR, if you want to continue working on this issue - please open a new one with only the required changes and according the guidelines.
Also, please make sure to give it a descriptive title.

@shahar1

Copy link
Copy Markdown
Contributor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 closed this Feb 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UI E2E Test || ADMIN-001: Verify Variables Page functionality

20 participants

@shashbha14@vatsrahul1001@shahar1@ephraimbuddy@vincbeck@arjav1528@suii2210@SameerMesiah97@Miretpl@ramitkataria@kacpermuda@jedcunningham@anishgirianish@potiuk@vikramkoka@Jkhall81@choo121600@haseebmalik18@cruseakshay@Lee-W
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Replaces #60632 (closed due to merge conflicts) - #61080

Closed
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2
Closed

Replaces #60632 (closed due to merge conflicts)#61080
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2

Conversation

@shashbha14

@shashbha14shashbha14 commented Jan 26, 2026

Copy link
Copy Markdown
Contributor

Add E2E tests to verify the Variables page (/variables) functionality including list display, CRUD operations, search, pagination, sorting, and import.

Related: #60565
Closes: #60565

Test Coverage
This PR adds 14 comprehensive E2E tests covering all requirements:

Display & CRUD Operations
✅ Verify variables list displays correctly
✅ Create variable (regular)
✅ Create encrypted variable
✅ Edit variable (value and description)
✅ Delete single variable
✅ Delete multiple variables (bulk operation)
Search Functionality
✅ Search variables by exact key pattern
✅ Search variables with wildcard pattern
Import Functionality
✅ Import variables from JSON file
Pagination
✅ Verify pagination works (navigation between pages)
Sorting
✅ Sort variables by Key (ascending)
✅ Sort variables by Key (descending)
✅ Sort variables by Value
✅ Sort variables by Description
Implementation Details
Page Object Model Architecture
BasePage.ts (74 lines) - Base class with common page interactions
LoginPage.ts (61 lines) - Authentication handling
VariablesPage.ts (377 lines) - Comprehensive Variables page object with:
CRUD operations (create, edit, delete single/bulk)
Search functionality
Import from file
Pagination controls
Sorting capabilities
Helper methods for verification
Test Specifications
variables.spec.ts (378 lines) - 14 test cases with:
Dynamic test data generation using timestamps
Proper setup in beforeAll (creates 35 baseline variables for pagination)
Proper cleanup in afterAll (batch deletion of test data)
Fresh login in beforeEach
Configuration
testConfig.ts (32 lines) - Centralized configuration with environment variable support
playwright.config.ts - Cross-browser configuration (Chromium, Firefox, WebKit)
README.md (144 lines) - Comprehensive E2E testing documentation
Acceptance Criteria
All acceptance criteria from issue #60565 have been met:

All tests follow Page Object Model (POM) pattern
Tests use testConfig for configuration
Tests create/cleanup their own test data in beforeAll/afterAll
Tests work across Chromium, Firefox, and WebKit browsers
No hardcoded values - use dynamic data where possible
Files Added
airflow/ui/tests/e2e/pages/BasePage.ts
airflow/ui/tests/e2e/pages/LoginPage.ts
airflow/ui/tests/e2e/pages/VariablesPage.ts
airflow/ui/tests/e2e/specs/variables.spec.ts
airflow/ui/tests/e2e/testConfig.ts
airflow/ui/tests/e2e/README.md
airflow/ui/playwright.config.ts
airflow/ui/.gitignore
How to Run Tests
bash

Prerequisites

cd airflow/ui
pnpm install
pnpm exec playwright install

Ensure Airflow is running at http://localhost:8080

Then run tests:

All E2E tests

pnpm test:e2e

Interactive UI mode

pnpm test:e2e:ui

Specific browser

pnpm test:e2e:chromium
pnpm test:e2e:firefox
pnpm test:e2e:webkit
Related Issues
Parent: #59028 (UI E2E Test Scenarios - Implementation Meta issue)
Implements: #60565 (UI E2E Test || ADMIN-001: Verify Variables Page functionality)
Replaces: #60632 (closed due to merge conflicts)

- Implement Page Object Model for Variables page
- Add 14 comprehensive test cases covering CRUD operations
- Include search, pagination, sorting, and import tests
- Add proper test data cleanup in beforeAll/afterAll hooks
- Configure for Chromium, Firefox, and WebKit browsers
Fixesapache#60565
@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 can you look at failing checks. Also link the PR to issue

@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 How are we progressing on this?

ephraimbuddyand others added 26 commits February 2, 2026 14:48
* Change leftover import error path record to relative path
These too should use relative paths for import error
* fixup! Change leftover import error path record to relative path
* fixup! fixup! Change leftover import error path record to relative path
* Apply suggestion from @ephraimbuddy
…nts when (apache#60532)
the Kubernetes watch stream ended (e.g. due to timeout_seconds), even while
the pod was still running.
This change reconnects on watch termination, resumes from the last observed
resourceVersion, restarts on stale resourceVersion errors (410), and stops
only when the pod completes or is deleted. Permission-denied watches still fall
back to polling.
As part of this fix, kubeconfig loading is cached and _load_config no longer
returns an API client, clarifying its responsibility and avoiding repeated
config loading during watch reconnects.
Tests cover reconnection behavior, stale resourceVersion recovery, and clean
termination on pod completion or deletion.
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61089)
Bumps the core-ui-package-updates group with 11 updates in the /airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui directory:
| Package | From | To |
| --- | --- | --- |
| [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) | `0.90.4` | `0.90.8` |
| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.1` | `16.3.2` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.1` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
Updates `@hey-api/openapi-ts` from 0.90.4 to 0.90.8
- [Release notes](https://github.com/hey-api/openapi-ts/releases)
- [Changelog](https://github.com/hey-api/openapi-ts/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/hey-api/openapi-ts/compare/@hey-api/openapi-ts@0.90.4...@hey-api/openapi-ts@0.90.8)
Updates `@testing-library/react` from 16.3.1 to 16.3.2
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](testing-library/react-testing-library@v16.3.1...v16.3.2)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.1 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.1...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@hey-api/openapi-ts"
dependency-version: 0.90.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@testing-library/react"
dependency-version: 16.3.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: core-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#56791)
* Use common provider's get_async_connection in other providers
* Fix sftp and livy unit tests
…d unit tests. (apache#60717)
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61088)
* Bump the edge-ui-package-updates group across 1 directory with 11 updates
Bumps the edge-ui-package-updates group with 11 updates in the /providers/edge3/src/airflow/providers/edge3/plugins/www directory:
| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.0.9` | `25.0.10` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.3` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.0.17` | `4.0.18` |
Updates `@types/node` from 25.0.9 to 25.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.3 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.3...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.0.10
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: edge-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
* Fix WWW compile hash
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jens Scheffler <jscheffl@apache.org>
This reverts commit d0da0c0.
Reverts apache#56245, as we can't safely use the tag to determine the version. Since we will be dropping support for 3 in the next release anyways, we will just keep it as-is for 1 more release.
* Updating the Provider governance docs based on AIP-95
Following up from earlier discussions, here is a PR to update the providers governance documentation.
Feedback is welcome.
Full disclosure, I used Cursor to generate the RST doc
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Updated with clarifications
Updated with clarification around process governance and to address feedback.
* Addressed feedback
Added more clarifications to address feedback
* Fixed formatting issues
Fixed formatting issues in the docs
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
---------
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Co-authored-by: Wei Lee <weilee.rx@gmail.com>
…60932)
* Fix Simple Auth Manager UI dev server not starting in breeze
* Redirected prek output to file in dev mode
…he#60650)
* Fix unclosed aiohttp ClientSession in AzureDataFactoryAsyncHook
* If cancel_pipeline_run() creates a new connection
* Address review comments
* review: early return
* add tests: build_trigger_event
---------
Co-authored-by: Akshay <cruseakshay@users.noreply.github.com>
Co-authored-by: Daniel Standish <15932138+dstandish@users.noreply.github.com>
* Git provider should require common-compat >=1.12.0
Using git provider 0.2.1 with common.compat <1.12 causes issues in dag callbacks
* Update providers/git/pyproject.toml
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
* fixup! Update providers/git/pyproject.toml
---------
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
@shashbha14

Copy link
Copy Markdown
ContributorAuthor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please note that this PR is currently impossible to review as it includes changes in 300+ unrelated files and 100+ unrelated commits.
Also, considering the PR's description - I assume that you used AI to create this PR. Using AI is generally allowed in this project, but you should also adhere to specific guidelines written here, including an explicit declaration of its usage in the PR's description.
I'm closing this PR, if you want to continue working on this issue - please open a new one with only the required changes and according the guidelines.
Also, please make sure to give it a descriptive title.

@shahar1

Copy link
Copy Markdown
Contributor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 closed this Feb 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UI E2E Test || ADMIN-001: Verify Variables Page functionality

20 participants

@shashbha14@vatsrahul1001@shahar1@ephraimbuddy@vincbeck@arjav1528@suii2210@SameerMesiah97@Miretpl@ramitkataria@kacpermuda@jedcunningham@anishgirianish@potiuk@vikramkoka@Jkhall81@choo121600@haseebmalik18@cruseakshay@Lee-W
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Replaces #60632 (closed due to merge conflicts) - #61080

Closed
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2
Closed

Replaces #60632 (closed due to merge conflicts)#61080
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2

Conversation

@shashbha14

@shashbha14shashbha14 commented Jan 26, 2026

Copy link
Copy Markdown
Contributor

Add E2E tests to verify the Variables page (/variables) functionality including list display, CRUD operations, search, pagination, sorting, and import.

Related: #60565
Closes: #60565

Test Coverage
This PR adds 14 comprehensive E2E tests covering all requirements:

Display & CRUD Operations
✅ Verify variables list displays correctly
✅ Create variable (regular)
✅ Create encrypted variable
✅ Edit variable (value and description)
✅ Delete single variable
✅ Delete multiple variables (bulk operation)
Search Functionality
✅ Search variables by exact key pattern
✅ Search variables with wildcard pattern
Import Functionality
✅ Import variables from JSON file
Pagination
✅ Verify pagination works (navigation between pages)
Sorting
✅ Sort variables by Key (ascending)
✅ Sort variables by Key (descending)
✅ Sort variables by Value
✅ Sort variables by Description
Implementation Details
Page Object Model Architecture
BasePage.ts (74 lines) - Base class with common page interactions
LoginPage.ts (61 lines) - Authentication handling
VariablesPage.ts (377 lines) - Comprehensive Variables page object with:
CRUD operations (create, edit, delete single/bulk)
Search functionality
Import from file
Pagination controls
Sorting capabilities
Helper methods for verification
Test Specifications
variables.spec.ts (378 lines) - 14 test cases with:
Dynamic test data generation using timestamps
Proper setup in beforeAll (creates 35 baseline variables for pagination)
Proper cleanup in afterAll (batch deletion of test data)
Fresh login in beforeEach
Configuration
testConfig.ts (32 lines) - Centralized configuration with environment variable support
playwright.config.ts - Cross-browser configuration (Chromium, Firefox, WebKit)
README.md (144 lines) - Comprehensive E2E testing documentation
Acceptance Criteria
All acceptance criteria from issue #60565 have been met:

All tests follow Page Object Model (POM) pattern
Tests use testConfig for configuration
Tests create/cleanup their own test data in beforeAll/afterAll
Tests work across Chromium, Firefox, and WebKit browsers
No hardcoded values - use dynamic data where possible
Files Added
airflow/ui/tests/e2e/pages/BasePage.ts
airflow/ui/tests/e2e/pages/LoginPage.ts
airflow/ui/tests/e2e/pages/VariablesPage.ts
airflow/ui/tests/e2e/specs/variables.spec.ts
airflow/ui/tests/e2e/testConfig.ts
airflow/ui/tests/e2e/README.md
airflow/ui/playwright.config.ts
airflow/ui/.gitignore
How to Run Tests
bash

Prerequisites

cd airflow/ui
pnpm install
pnpm exec playwright install

Ensure Airflow is running at http://localhost:8080

Then run tests:

All E2E tests

pnpm test:e2e

Interactive UI mode

pnpm test:e2e:ui

Specific browser

pnpm test:e2e:chromium
pnpm test:e2e:firefox
pnpm test:e2e:webkit
Related Issues
Parent: #59028 (UI E2E Test Scenarios - Implementation Meta issue)
Implements: #60565 (UI E2E Test || ADMIN-001: Verify Variables Page functionality)
Replaces: #60632 (closed due to merge conflicts)

- Implement Page Object Model for Variables page
- Add 14 comprehensive test cases covering CRUD operations
- Include search, pagination, sorting, and import tests
- Add proper test data cleanup in beforeAll/afterAll hooks
- Configure for Chromium, Firefox, and WebKit browsers
Fixesapache#60565
@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 can you look at failing checks. Also link the PR to issue

@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 How are we progressing on this?

ephraimbuddyand others added 26 commits February 2, 2026 14:48
* Change leftover import error path record to relative path
These too should use relative paths for import error
* fixup! Change leftover import error path record to relative path
* fixup! fixup! Change leftover import error path record to relative path
* Apply suggestion from @ephraimbuddy
…nts when (apache#60532)
the Kubernetes watch stream ended (e.g. due to timeout_seconds), even while
the pod was still running.
This change reconnects on watch termination, resumes from the last observed
resourceVersion, restarts on stale resourceVersion errors (410), and stops
only when the pod completes or is deleted. Permission-denied watches still fall
back to polling.
As part of this fix, kubeconfig loading is cached and _load_config no longer
returns an API client, clarifying its responsibility and avoiding repeated
config loading during watch reconnects.
Tests cover reconnection behavior, stale resourceVersion recovery, and clean
termination on pod completion or deletion.
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61089)
Bumps the core-ui-package-updates group with 11 updates in the /airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui directory:
| Package | From | To |
| --- | --- | --- |
| [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) | `0.90.4` | `0.90.8` |
| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.1` | `16.3.2` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.1` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
Updates `@hey-api/openapi-ts` from 0.90.4 to 0.90.8
- [Release notes](https://github.com/hey-api/openapi-ts/releases)
- [Changelog](https://github.com/hey-api/openapi-ts/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/hey-api/openapi-ts/compare/@hey-api/openapi-ts@0.90.4...@hey-api/openapi-ts@0.90.8)
Updates `@testing-library/react` from 16.3.1 to 16.3.2
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](testing-library/react-testing-library@v16.3.1...v16.3.2)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.1 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.1...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@hey-api/openapi-ts"
dependency-version: 0.90.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@testing-library/react"
dependency-version: 16.3.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: core-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#56791)
* Use common provider's get_async_connection in other providers
* Fix sftp and livy unit tests
…d unit tests. (apache#60717)
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61088)
* Bump the edge-ui-package-updates group across 1 directory with 11 updates
Bumps the edge-ui-package-updates group with 11 updates in the /providers/edge3/src/airflow/providers/edge3/plugins/www directory:
| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.0.9` | `25.0.10` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.3` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.0.17` | `4.0.18` |
Updates `@types/node` from 25.0.9 to 25.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.3 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.3...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.0.10
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: edge-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
* Fix WWW compile hash
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jens Scheffler <jscheffl@apache.org>
This reverts commit d0da0c0.
Reverts apache#56245, as we can't safely use the tag to determine the version. Since we will be dropping support for 3 in the next release anyways, we will just keep it as-is for 1 more release.
* Updating the Provider governance docs based on AIP-95
Following up from earlier discussions, here is a PR to update the providers governance documentation.
Feedback is welcome.
Full disclosure, I used Cursor to generate the RST doc
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Updated with clarifications
Updated with clarification around process governance and to address feedback.
* Addressed feedback
Added more clarifications to address feedback
* Fixed formatting issues
Fixed formatting issues in the docs
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
---------
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Co-authored-by: Wei Lee <weilee.rx@gmail.com>
…60932)
* Fix Simple Auth Manager UI dev server not starting in breeze
* Redirected prek output to file in dev mode
…he#60650)
* Fix unclosed aiohttp ClientSession in AzureDataFactoryAsyncHook
* If cancel_pipeline_run() creates a new connection
* Address review comments
* review: early return
* add tests: build_trigger_event
---------
Co-authored-by: Akshay <cruseakshay@users.noreply.github.com>
Co-authored-by: Daniel Standish <15932138+dstandish@users.noreply.github.com>
* Git provider should require common-compat >=1.12.0
Using git provider 0.2.1 with common.compat <1.12 causes issues in dag callbacks
* Update providers/git/pyproject.toml
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
* fixup! Update providers/git/pyproject.toml
---------
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
@shashbha14

Copy link
Copy Markdown
ContributorAuthor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please note that this PR is currently impossible to review as it includes changes in 300+ unrelated files and 100+ unrelated commits.
Also, considering the PR's description - I assume that you used AI to create this PR. Using AI is generally allowed in this project, but you should also adhere to specific guidelines written here, including an explicit declaration of its usage in the PR's description.
I'm closing this PR, if you want to continue working on this issue - please open a new one with only the required changes and according the guidelines.
Also, please make sure to give it a descriptive title.

@shahar1

Copy link
Copy Markdown
Contributor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 closed this Feb 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UI E2E Test || ADMIN-001: Verify Variables Page functionality

20 participants

@shashbha14@vatsrahul1001@shahar1@ephraimbuddy@vincbeck@arjav1528@suii2210@SameerMesiah97@Miretpl@ramitkataria@kacpermuda@jedcunningham@anishgirianish@potiuk@vikramkoka@Jkhall81@choo121600@haseebmalik18@cruseakshay@Lee-W
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Replaces #60632 (closed due to merge conflicts) - #61080

Closed
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2
Closed

Replaces #60632 (closed due to merge conflicts)#61080
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2

Conversation

@shashbha14

@shashbha14shashbha14 commented Jan 26, 2026

Copy link
Copy Markdown
Contributor

Add E2E tests to verify the Variables page (/variables) functionality including list display, CRUD operations, search, pagination, sorting, and import.

Related: #60565
Closes: #60565

Test Coverage
This PR adds 14 comprehensive E2E tests covering all requirements:

Display & CRUD Operations
✅ Verify variables list displays correctly
✅ Create variable (regular)
✅ Create encrypted variable
✅ Edit variable (value and description)
✅ Delete single variable
✅ Delete multiple variables (bulk operation)
Search Functionality
✅ Search variables by exact key pattern
✅ Search variables with wildcard pattern
Import Functionality
✅ Import variables from JSON file
Pagination
✅ Verify pagination works (navigation between pages)
Sorting
✅ Sort variables by Key (ascending)
✅ Sort variables by Key (descending)
✅ Sort variables by Value
✅ Sort variables by Description
Implementation Details
Page Object Model Architecture
BasePage.ts (74 lines) - Base class with common page interactions
LoginPage.ts (61 lines) - Authentication handling
VariablesPage.ts (377 lines) - Comprehensive Variables page object with:
CRUD operations (create, edit, delete single/bulk)
Search functionality
Import from file
Pagination controls
Sorting capabilities
Helper methods for verification
Test Specifications
variables.spec.ts (378 lines) - 14 test cases with:
Dynamic test data generation using timestamps
Proper setup in beforeAll (creates 35 baseline variables for pagination)
Proper cleanup in afterAll (batch deletion of test data)
Fresh login in beforeEach
Configuration
testConfig.ts (32 lines) - Centralized configuration with environment variable support
playwright.config.ts - Cross-browser configuration (Chromium, Firefox, WebKit)
README.md (144 lines) - Comprehensive E2E testing documentation
Acceptance Criteria
All acceptance criteria from issue #60565 have been met:

All tests follow Page Object Model (POM) pattern
Tests use testConfig for configuration
Tests create/cleanup their own test data in beforeAll/afterAll
Tests work across Chromium, Firefox, and WebKit browsers
No hardcoded values - use dynamic data where possible
Files Added
airflow/ui/tests/e2e/pages/BasePage.ts
airflow/ui/tests/e2e/pages/LoginPage.ts
airflow/ui/tests/e2e/pages/VariablesPage.ts
airflow/ui/tests/e2e/specs/variables.spec.ts
airflow/ui/tests/e2e/testConfig.ts
airflow/ui/tests/e2e/README.md
airflow/ui/playwright.config.ts
airflow/ui/.gitignore
How to Run Tests
bash

Prerequisites

cd airflow/ui
pnpm install
pnpm exec playwright install

Ensure Airflow is running at http://localhost:8080

Then run tests:

All E2E tests

pnpm test:e2e

Interactive UI mode

pnpm test:e2e:ui

Specific browser

pnpm test:e2e:chromium
pnpm test:e2e:firefox
pnpm test:e2e:webkit
Related Issues
Parent: #59028 (UI E2E Test Scenarios - Implementation Meta issue)
Implements: #60565 (UI E2E Test || ADMIN-001: Verify Variables Page functionality)
Replaces: #60632 (closed due to merge conflicts)

- Implement Page Object Model for Variables page
- Add 14 comprehensive test cases covering CRUD operations
- Include search, pagination, sorting, and import tests
- Add proper test data cleanup in beforeAll/afterAll hooks
- Configure for Chromium, Firefox, and WebKit browsers
Fixesapache#60565
@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 can you look at failing checks. Also link the PR to issue

@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 How are we progressing on this?

ephraimbuddyand others added 26 commits February 2, 2026 14:48
* Change leftover import error path record to relative path
These too should use relative paths for import error
* fixup! Change leftover import error path record to relative path
* fixup! fixup! Change leftover import error path record to relative path
* Apply suggestion from @ephraimbuddy
…nts when (apache#60532)
the Kubernetes watch stream ended (e.g. due to timeout_seconds), even while
the pod was still running.
This change reconnects on watch termination, resumes from the last observed
resourceVersion, restarts on stale resourceVersion errors (410), and stops
only when the pod completes or is deleted. Permission-denied watches still fall
back to polling.
As part of this fix, kubeconfig loading is cached and _load_config no longer
returns an API client, clarifying its responsibility and avoiding repeated
config loading during watch reconnects.
Tests cover reconnection behavior, stale resourceVersion recovery, and clean
termination on pod completion or deletion.
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61089)
Bumps the core-ui-package-updates group with 11 updates in the /airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui directory:
| Package | From | To |
| --- | --- | --- |
| [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) | `0.90.4` | `0.90.8` |
| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.1` | `16.3.2` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.1` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
Updates `@hey-api/openapi-ts` from 0.90.4 to 0.90.8
- [Release notes](https://github.com/hey-api/openapi-ts/releases)
- [Changelog](https://github.com/hey-api/openapi-ts/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/hey-api/openapi-ts/compare/@hey-api/openapi-ts@0.90.4...@hey-api/openapi-ts@0.90.8)
Updates `@testing-library/react` from 16.3.1 to 16.3.2
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](testing-library/react-testing-library@v16.3.1...v16.3.2)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.1 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.1...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@hey-api/openapi-ts"
dependency-version: 0.90.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@testing-library/react"
dependency-version: 16.3.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: core-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#56791)
* Use common provider's get_async_connection in other providers
* Fix sftp and livy unit tests
…d unit tests. (apache#60717)
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61088)
* Bump the edge-ui-package-updates group across 1 directory with 11 updates
Bumps the edge-ui-package-updates group with 11 updates in the /providers/edge3/src/airflow/providers/edge3/plugins/www directory:
| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.0.9` | `25.0.10` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.3` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.0.17` | `4.0.18` |
Updates `@types/node` from 25.0.9 to 25.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.3 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.3...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.0.10
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: edge-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
* Fix WWW compile hash
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jens Scheffler <jscheffl@apache.org>
This reverts commit d0da0c0.
Reverts apache#56245, as we can't safely use the tag to determine the version. Since we will be dropping support for 3 in the next release anyways, we will just keep it as-is for 1 more release.
* Updating the Provider governance docs based on AIP-95
Following up from earlier discussions, here is a PR to update the providers governance documentation.
Feedback is welcome.
Full disclosure, I used Cursor to generate the RST doc
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Updated with clarifications
Updated with clarification around process governance and to address feedback.
* Addressed feedback
Added more clarifications to address feedback
* Fixed formatting issues
Fixed formatting issues in the docs
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
---------
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Co-authored-by: Wei Lee <weilee.rx@gmail.com>
…60932)
* Fix Simple Auth Manager UI dev server not starting in breeze
* Redirected prek output to file in dev mode
…he#60650)
* Fix unclosed aiohttp ClientSession in AzureDataFactoryAsyncHook
* If cancel_pipeline_run() creates a new connection
* Address review comments
* review: early return
* add tests: build_trigger_event
---------
Co-authored-by: Akshay <cruseakshay@users.noreply.github.com>
Co-authored-by: Daniel Standish <15932138+dstandish@users.noreply.github.com>
* Git provider should require common-compat >=1.12.0
Using git provider 0.2.1 with common.compat <1.12 causes issues in dag callbacks
* Update providers/git/pyproject.toml
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
* fixup! Update providers/git/pyproject.toml
---------
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
@shashbha14

Copy link
Copy Markdown
ContributorAuthor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please note that this PR is currently impossible to review as it includes changes in 300+ unrelated files and 100+ unrelated commits.
Also, considering the PR's description - I assume that you used AI to create this PR. Using AI is generally allowed in this project, but you should also adhere to specific guidelines written here, including an explicit declaration of its usage in the PR's description.
I'm closing this PR, if you want to continue working on this issue - please open a new one with only the required changes and according the guidelines.
Also, please make sure to give it a descriptive title.

@shahar1

Copy link
Copy Markdown
Contributor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 closed this Feb 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UI E2E Test || ADMIN-001: Verify Variables Page functionality

20 participants

@shashbha14@vatsrahul1001@shahar1@ephraimbuddy@vincbeck@arjav1528@suii2210@SameerMesiah97@Miretpl@ramitkataria@kacpermuda@jedcunningham@anishgirianish@potiuk@vikramkoka@Jkhall81@choo121600@haseebmalik18@cruseakshay@Lee-W
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Replaces #60632 (closed due to merge conflicts) - #61080

Closed
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2
Closed

Replaces #60632 (closed due to merge conflicts)#61080
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2

Conversation

@shashbha14

@shashbha14shashbha14 commented Jan 26, 2026

Copy link
Copy Markdown
Contributor

Add E2E tests to verify the Variables page (/variables) functionality including list display, CRUD operations, search, pagination, sorting, and import.

Related: #60565
Closes: #60565

Test Coverage
This PR adds 14 comprehensive E2E tests covering all requirements:

Display & CRUD Operations
✅ Verify variables list displays correctly
✅ Create variable (regular)
✅ Create encrypted variable
✅ Edit variable (value and description)
✅ Delete single variable
✅ Delete multiple variables (bulk operation)
Search Functionality
✅ Search variables by exact key pattern
✅ Search variables with wildcard pattern
Import Functionality
✅ Import variables from JSON file
Pagination
✅ Verify pagination works (navigation between pages)
Sorting
✅ Sort variables by Key (ascending)
✅ Sort variables by Key (descending)
✅ Sort variables by Value
✅ Sort variables by Description
Implementation Details
Page Object Model Architecture
BasePage.ts (74 lines) - Base class with common page interactions
LoginPage.ts (61 lines) - Authentication handling
VariablesPage.ts (377 lines) - Comprehensive Variables page object with:
CRUD operations (create, edit, delete single/bulk)
Search functionality
Import from file
Pagination controls
Sorting capabilities
Helper methods for verification
Test Specifications
variables.spec.ts (378 lines) - 14 test cases with:
Dynamic test data generation using timestamps
Proper setup in beforeAll (creates 35 baseline variables for pagination)
Proper cleanup in afterAll (batch deletion of test data)
Fresh login in beforeEach
Configuration
testConfig.ts (32 lines) - Centralized configuration with environment variable support
playwright.config.ts - Cross-browser configuration (Chromium, Firefox, WebKit)
README.md (144 lines) - Comprehensive E2E testing documentation
Acceptance Criteria
All acceptance criteria from issue #60565 have been met:

All tests follow Page Object Model (POM) pattern
Tests use testConfig for configuration
Tests create/cleanup their own test data in beforeAll/afterAll
Tests work across Chromium, Firefox, and WebKit browsers
No hardcoded values - use dynamic data where possible
Files Added
airflow/ui/tests/e2e/pages/BasePage.ts
airflow/ui/tests/e2e/pages/LoginPage.ts
airflow/ui/tests/e2e/pages/VariablesPage.ts
airflow/ui/tests/e2e/specs/variables.spec.ts
airflow/ui/tests/e2e/testConfig.ts
airflow/ui/tests/e2e/README.md
airflow/ui/playwright.config.ts
airflow/ui/.gitignore
How to Run Tests
bash

Prerequisites

cd airflow/ui
pnpm install
pnpm exec playwright install

Ensure Airflow is running at http://localhost:8080

Then run tests:

All E2E tests

pnpm test:e2e

Interactive UI mode

pnpm test:e2e:ui

Specific browser

pnpm test:e2e:chromium
pnpm test:e2e:firefox
pnpm test:e2e:webkit
Related Issues
Parent: #59028 (UI E2E Test Scenarios - Implementation Meta issue)
Implements: #60565 (UI E2E Test || ADMIN-001: Verify Variables Page functionality)
Replaces: #60632 (closed due to merge conflicts)

- Implement Page Object Model for Variables page
- Add 14 comprehensive test cases covering CRUD operations
- Include search, pagination, sorting, and import tests
- Add proper test data cleanup in beforeAll/afterAll hooks
- Configure for Chromium, Firefox, and WebKit browsers
Fixesapache#60565
@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 can you look at failing checks. Also link the PR to issue

@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 How are we progressing on this?

ephraimbuddyand others added 26 commits February 2, 2026 14:48
* Change leftover import error path record to relative path
These too should use relative paths for import error
* fixup! Change leftover import error path record to relative path
* fixup! fixup! Change leftover import error path record to relative path
* Apply suggestion from @ephraimbuddy
…nts when (apache#60532)
the Kubernetes watch stream ended (e.g. due to timeout_seconds), even while
the pod was still running.
This change reconnects on watch termination, resumes from the last observed
resourceVersion, restarts on stale resourceVersion errors (410), and stops
only when the pod completes or is deleted. Permission-denied watches still fall
back to polling.
As part of this fix, kubeconfig loading is cached and _load_config no longer
returns an API client, clarifying its responsibility and avoiding repeated
config loading during watch reconnects.
Tests cover reconnection behavior, stale resourceVersion recovery, and clean
termination on pod completion or deletion.
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61089)
Bumps the core-ui-package-updates group with 11 updates in the /airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui directory:
| Package | From | To |
| --- | --- | --- |
| [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) | `0.90.4` | `0.90.8` |
| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.1` | `16.3.2` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.1` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
Updates `@hey-api/openapi-ts` from 0.90.4 to 0.90.8
- [Release notes](https://github.com/hey-api/openapi-ts/releases)
- [Changelog](https://github.com/hey-api/openapi-ts/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/hey-api/openapi-ts/compare/@hey-api/openapi-ts@0.90.4...@hey-api/openapi-ts@0.90.8)
Updates `@testing-library/react` from 16.3.1 to 16.3.2
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](testing-library/react-testing-library@v16.3.1...v16.3.2)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.1 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.1...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@hey-api/openapi-ts"
dependency-version: 0.90.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@testing-library/react"
dependency-version: 16.3.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: core-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#56791)
* Use common provider's get_async_connection in other providers
* Fix sftp and livy unit tests
…d unit tests. (apache#60717)
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61088)
* Bump the edge-ui-package-updates group across 1 directory with 11 updates
Bumps the edge-ui-package-updates group with 11 updates in the /providers/edge3/src/airflow/providers/edge3/plugins/www directory:
| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.0.9` | `25.0.10` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.3` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.0.17` | `4.0.18` |
Updates `@types/node` from 25.0.9 to 25.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.3 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.3...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.0.10
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: edge-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
* Fix WWW compile hash
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jens Scheffler <jscheffl@apache.org>
This reverts commit d0da0c0.
Reverts apache#56245, as we can't safely use the tag to determine the version. Since we will be dropping support for 3 in the next release anyways, we will just keep it as-is for 1 more release.
* Updating the Provider governance docs based on AIP-95
Following up from earlier discussions, here is a PR to update the providers governance documentation.
Feedback is welcome.
Full disclosure, I used Cursor to generate the RST doc
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Updated with clarifications
Updated with clarification around process governance and to address feedback.
* Addressed feedback
Added more clarifications to address feedback
* Fixed formatting issues
Fixed formatting issues in the docs
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
---------
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Co-authored-by: Wei Lee <weilee.rx@gmail.com>
…60932)
* Fix Simple Auth Manager UI dev server not starting in breeze
* Redirected prek output to file in dev mode
…he#60650)
* Fix unclosed aiohttp ClientSession in AzureDataFactoryAsyncHook
* If cancel_pipeline_run() creates a new connection
* Address review comments
* review: early return
* add tests: build_trigger_event
---------
Co-authored-by: Akshay <cruseakshay@users.noreply.github.com>
Co-authored-by: Daniel Standish <15932138+dstandish@users.noreply.github.com>
* Git provider should require common-compat >=1.12.0
Using git provider 0.2.1 with common.compat <1.12 causes issues in dag callbacks
* Update providers/git/pyproject.toml
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
* fixup! Update providers/git/pyproject.toml
---------
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
@shashbha14

Copy link
Copy Markdown
ContributorAuthor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please note that this PR is currently impossible to review as it includes changes in 300+ unrelated files and 100+ unrelated commits.
Also, considering the PR's description - I assume that you used AI to create this PR. Using AI is generally allowed in this project, but you should also adhere to specific guidelines written here, including an explicit declaration of its usage in the PR's description.
I'm closing this PR, if you want to continue working on this issue - please open a new one with only the required changes and according the guidelines.
Also, please make sure to give it a descriptive title.

@shahar1

Copy link
Copy Markdown
Contributor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 closed this Feb 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UI E2E Test || ADMIN-001: Verify Variables Page functionality

20 participants

@shashbha14@vatsrahul1001@shahar1@ephraimbuddy@vincbeck@arjav1528@suii2210@SameerMesiah97@Miretpl@ramitkataria@kacpermuda@jedcunningham@anishgirianish@potiuk@vikramkoka@Jkhall81@choo121600@haseebmalik18@cruseakshay@Lee-W
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Replaces #60632 (closed due to merge conflicts) - #61080

Closed
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2
Closed

Replaces #60632 (closed due to merge conflicts)#61080
shashbha14 wants to merge 131 commits into
apache:mainfrom
shashbha14:add-variables-e2e-tests-v2

Conversation

@shashbha14

@shashbha14shashbha14 commented Jan 26, 2026

Copy link
Copy Markdown
Contributor

Add E2E tests to verify the Variables page (/variables) functionality including list display, CRUD operations, search, pagination, sorting, and import.

Related: #60565
Closes: #60565

Test Coverage
This PR adds 14 comprehensive E2E tests covering all requirements:

Display & CRUD Operations
✅ Verify variables list displays correctly
✅ Create variable (regular)
✅ Create encrypted variable
✅ Edit variable (value and description)
✅ Delete single variable
✅ Delete multiple variables (bulk operation)
Search Functionality
✅ Search variables by exact key pattern
✅ Search variables with wildcard pattern
Import Functionality
✅ Import variables from JSON file
Pagination
✅ Verify pagination works (navigation between pages)
Sorting
✅ Sort variables by Key (ascending)
✅ Sort variables by Key (descending)
✅ Sort variables by Value
✅ Sort variables by Description
Implementation Details
Page Object Model Architecture
BasePage.ts (74 lines) - Base class with common page interactions
LoginPage.ts (61 lines) - Authentication handling
VariablesPage.ts (377 lines) - Comprehensive Variables page object with:
CRUD operations (create, edit, delete single/bulk)
Search functionality
Import from file
Pagination controls
Sorting capabilities
Helper methods for verification
Test Specifications
variables.spec.ts (378 lines) - 14 test cases with:
Dynamic test data generation using timestamps
Proper setup in beforeAll (creates 35 baseline variables for pagination)
Proper cleanup in afterAll (batch deletion of test data)
Fresh login in beforeEach
Configuration
testConfig.ts (32 lines) - Centralized configuration with environment variable support
playwright.config.ts - Cross-browser configuration (Chromium, Firefox, WebKit)
README.md (144 lines) - Comprehensive E2E testing documentation
Acceptance Criteria
All acceptance criteria from issue #60565 have been met:

All tests follow Page Object Model (POM) pattern
Tests use testConfig for configuration
Tests create/cleanup their own test data in beforeAll/afterAll
Tests work across Chromium, Firefox, and WebKit browsers
No hardcoded values - use dynamic data where possible
Files Added
airflow/ui/tests/e2e/pages/BasePage.ts
airflow/ui/tests/e2e/pages/LoginPage.ts
airflow/ui/tests/e2e/pages/VariablesPage.ts
airflow/ui/tests/e2e/specs/variables.spec.ts
airflow/ui/tests/e2e/testConfig.ts
airflow/ui/tests/e2e/README.md
airflow/ui/playwright.config.ts
airflow/ui/.gitignore
How to Run Tests
bash

Prerequisites

cd airflow/ui
pnpm install
pnpm exec playwright install

Ensure Airflow is running at http://localhost:8080

Then run tests:

All E2E tests

pnpm test:e2e

Interactive UI mode

pnpm test:e2e:ui

Specific browser

pnpm test:e2e:chromium
pnpm test:e2e:firefox
pnpm test:e2e:webkit
Related Issues
Parent: #59028 (UI E2E Test Scenarios - Implementation Meta issue)
Implements: #60565 (UI E2E Test || ADMIN-001: Verify Variables Page functionality)
Replaces: #60632 (closed due to merge conflicts)

- Implement Page Object Model for Variables page
- Add 14 comprehensive test cases covering CRUD operations
- Include search, pagination, sorting, and import tests
- Add proper test data cleanup in beforeAll/afterAll hooks
- Configure for Chromium, Firefox, and WebKit browsers
Fixesapache#60565
@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 can you look at failing checks. Also link the PR to issue

@vatsrahul1001

Copy link
Copy Markdown
Contributor

@shashbha14 How are we progressing on this?

ephraimbuddyand others added 26 commits February 2, 2026 14:48
* Change leftover import error path record to relative path
These too should use relative paths for import error
* fixup! Change leftover import error path record to relative path
* fixup! fixup! Change leftover import error path record to relative path
* Apply suggestion from @ephraimbuddy
…nts when (apache#60532)
the Kubernetes watch stream ended (e.g. due to timeout_seconds), even while
the pod was still running.
This change reconnects on watch termination, resumes from the last observed
resourceVersion, restarts on stale resourceVersion errors (410), and stops
only when the pod completes or is deleted. Permission-denied watches still fall
back to polling.
As part of this fix, kubeconfig loading is cached and _load_config no longer
returns an API client, clarifying its responsibility and avoiding repeated
config loading during watch reconnects.
Tests cover reconnection behavior, stale resourceVersion recovery, and clean
termination on pod completion or deletion.
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61089)
Bumps the core-ui-package-updates group with 11 updates in the /airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui directory:
| Package | From | To |
| --- | --- | --- |
| [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) | `0.90.4` | `0.90.8` |
| [@testing-library/react](https://github.com/testing-library/react-testing-library) | `16.3.1` | `16.3.2` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.1` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
Updates `@hey-api/openapi-ts` from 0.90.4 to 0.90.8
- [Release notes](https://github.com/hey-api/openapi-ts/releases)
- [Changelog](https://github.com/hey-api/openapi-ts/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/hey-api/openapi-ts/compare/@hey-api/openapi-ts@0.90.4...@hey-api/openapi-ts@0.90.8)
Updates `@testing-library/react` from 16.3.1 to 16.3.2
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](testing-library/react-testing-library@v16.3.1...v16.3.2)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.1 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.1...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@hey-api/openapi-ts"
dependency-version: 0.90.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@testing-library/react"
dependency-version: 16.3.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: core-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: core-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#56791)
* Use common provider's get_async_connection in other providers
* Fix sftp and livy unit tests
…d unit tests. (apache#60717)
Co-authored-by: Sameer Mesiah <smesiah971@gmail.com>
…ates (apache#61088)
* Bump the edge-ui-package-updates group across 1 directory with 11 updates
Bumps the edge-ui-package-updates group with 11 updates in the /providers/edge3/src/airflow/providers/edge3/plugins/www directory:
| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.0.9` | `25.0.10` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.8` | `19.2.9` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.53.0` | `8.53.1` |
| [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.53.0` | `8.53.1` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.0.17` | `4.0.18` |
| [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.3.1` | `5.4.0` |
| [happy-dom](https://github.com/capricorn86/happy-dom) | `20.3.3` | `20.3.4` |
| [prettier](https://github.com/prettier/prettier) | `3.8.0` | `3.8.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.53.0` | `8.53.1` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.0.17` | `4.0.18` |
Updates `@types/node` from 25.0.9 to 25.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Updates `@types/react` from 19.2.8 to 19.2.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@typescript-eslint/eslint-plugin` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/eslint-plugin)
Updates `@typescript-eslint/parser` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/parser)
Updates `@typescript-eslint/utils` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/utils)
Updates `@vitest/coverage-v8` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/coverage-v8)
Updates `eslint-plugin-perfectionist` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/azat-io/eslint-plugin-perfectionist/releases)
- [Changelog](https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md)
- [Commits](azat-io/eslint-plugin-perfectionist@v5.3.1...v5.4.0)
Updates `happy-dom` from 20.3.3 to 20.3.4
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v20.3.3...v20.3.4)
Updates `prettier` from 3.8.0 to 3.8.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.0...3.8.1)
Updates `typescript-eslint` from 8.53.0 to 8.53.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.53.1/packages/typescript-eslint)
Updates `vitest` from 4.0.17 to 4.0.18
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.18/packages/vitest)
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 25.0.10
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@types/react"
dependency-version: 19.2.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/parser"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@typescript-eslint/utils"
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: "@vitest/coverage-v8"
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: eslint-plugin-perfectionist
dependency-version: 5.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: edge-ui-package-updates
- dependency-name: happy-dom
dependency-version: 20.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: typescript-eslint
dependency-version: 8.53.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
- dependency-name: vitest
dependency-version: 4.0.18
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: edge-ui-package-updates
...
Signed-off-by: dependabot[bot] <support@github.com>
* Fix WWW compile hash
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jens Scheffler <jscheffl@apache.org>
This reverts commit d0da0c0.
Reverts apache#56245, as we can't safely use the tag to determine the version. Since we will be dropping support for 3 in the next release anyways, we will just keep it as-is for 1 more release.
* Updating the Provider governance docs based on AIP-95
Following up from earlier discussions, here is a PR to update the providers governance documentation.
Feedback is welcome.
Full disclosure, I used Cursor to generate the RST doc
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update providers/MANAGING_PROVIDERS_LIFECYCLE.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Updated with clarifications
Updated with clarification around process governance and to address feedback.
* Addressed feedback
Added more clarifications to address feedback
* Fixed formatting issues
Fixed formatting issues in the docs
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
* Update PROVIDERS.rst
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
---------
Co-authored-by: Ryan Hatter <25823361+RNHTTR@users.noreply.github.com>
Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Co-authored-by: Wei Lee <weilee.rx@gmail.com>
…60932)
* Fix Simple Auth Manager UI dev server not starting in breeze
* Redirected prek output to file in dev mode
…he#60650)
* Fix unclosed aiohttp ClientSession in AzureDataFactoryAsyncHook
* If cancel_pipeline_run() creates a new connection
* Address review comments
* review: early return
* add tests: build_trigger_event
---------
Co-authored-by: Akshay <cruseakshay@users.noreply.github.com>
Co-authored-by: Daniel Standish <15932138+dstandish@users.noreply.github.com>
* Git provider should require common-compat >=1.12.0
Using git provider 0.2.1 with common.compat <1.12 causes issues in dag callbacks
* Update providers/git/pyproject.toml
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
* fixup! Update providers/git/pyproject.toml
---------
Co-authored-by: Elad Kalif <45845474+eladkal@users.noreply.github.com>
@shashbha14

Copy link
Copy Markdown
ContributorAuthor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please note that this PR is currently impossible to review as it includes changes in 300+ unrelated files and 100+ unrelated commits.
Also, considering the PR's description - I assume that you used AI to create this PR. Using AI is generally allowed in this project, but you should also adhere to specific guidelines written here, including an explicit declaration of its usage in the PR's description.
I'm closing this PR, if you want to continue working on this issue - please open a new one with only the required changes and according the guidelines.
Also, please make sure to give it a descriptive title.

@shahar1

Copy link
Copy Markdown
Contributor

Yes, this is still in progress. I’ve fixed the static check failures in the Variables UI e2e tests, rebased on the latest main, and all checks are green except for workflows that require maintainer approval. Could someone please approve the workflows and review when convenient?

@shahar1shahar1 closed this Feb 2, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UI E2E Test || ADMIN-001: Verify Variables Page functionality

20 participants

@shashbha14@vatsrahul1001@shahar1@ephraimbuddy@vincbeck@arjav1528@suii2210@SameerMesiah97@Miretpl@ramitkataria@kacpermuda@jedcunningham@anishgirianish@potiuk@vikramkoka@Jkhall81@choo121600@haseebmalik18@cruseakshay@Lee-W