This is an automated email from the ASF dual-hosted git repository.
vatsrahul1001 pushed a commit to branch v3-3-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-3-test by this push:
new 95657864a78 Fix Configuration page e2e test failing when the first
option has no value (#72724) (#72778)
95657864a78 is described below
commit 95657864a7873981af552b92e9bab4d182b91855
Author: Rahul Vats <[email protected]>
AuthorDate: Wed Sep 9 19:08:22 2026 +0530
Fix Configuration page e2e test failing when the first option has no value
(#72724) (#72778)
The test asserted that the first row of the Config table has a non-empty
value. Which option comes first depends on the provider fallback defaults,
and since those were regenerated from provider.yaml the first row is now
hive/default_hive_mapred_queue, whose value is legitimately empty. That
broke the Chromium, Firefox and WebKit e2e jobs on every main-based PR.
Check the value on core/dags_folder instead, which always has one, and
locate cells by their test ids rather than column position.
Claude-Session: https://claude.ai/code/session_01LPR1qQYC6BGWc4JoHRgWV3
(cherry picked from commit 2d717899a98af84103a4212bb298bf8195a92c1d)
Co-authored-by: Jonathan Brown
<[email protected]>
Co-authored-by: Claude Fable 5.1 <[email protected]>
---
.../src/airflow/ui/tests/e2e/pages/ConfigurationPage.ts | 6 ++++++
.../src/airflow/ui/tests/e2e/specs/configuration.spec.ts | 12 +++++++++---
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/airflow-core/src/airflow/ui/tests/e2e/pages/ConfigurationPage.ts
b/airflow-core/src/airflow/ui/tests/e2e/pages/ConfigurationPage.ts
index 3683ce7e093..65e80729336 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/pages/ConfigurationPage.ts
+++ b/airflow-core/src/airflow/ui/tests/e2e/pages/ConfigurationPage.ts
@@ -38,6 +38,12 @@ export class ConfigurationPage extends BasePage {
});
}
+ public getRowByKey(key: string): Locator {
+ return this.rows.filter({
+ has: this.page.getByTestId("table-cell-key").filter({ hasText: new
RegExp(`^${key}$`) }),
+ });
+ }
+
public async navigate(): Promise<void> {
await expect(async () => {
await this.navigateTo("/configs");
diff --git a/airflow-core/src/airflow/ui/tests/e2e/specs/configuration.spec.ts
b/airflow-core/src/airflow/ui/tests/e2e/specs/configuration.spec.ts
index fd35506aac0..58d35ac392b 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/specs/configuration.spec.ts
+++ b/airflow-core/src/airflow/ui/tests/e2e/specs/configuration.spec.ts
@@ -31,8 +31,14 @@ test.describe("Configuration Page", () => {
const firstRow = configurationPage.rows.nth(0);
- await expect(firstRow.locator("td").nth(0)).not.toBeEmpty();
- await expect(firstRow.locator("td").nth(1)).not.toBeEmpty();
- await expect(firstRow.locator("td").nth(2)).not.toBeEmpty();
+ await expect(firstRow.getByTestId("table-cell-section")).not.toBeEmpty();
+ await expect(firstRow.getByTestId("table-cell-key")).not.toBeEmpty();
+
+ // Many options legitimately have an empty value, so check a row that
always has one.
+ const dagsFolderRow = configurationPage.getRowByKey("dags_folder");
+
+ await expect(dagsFolderRow).toHaveCount(1);
+ await
expect(dagsFolderRow.getByTestId("table-cell-section")).toHaveText("core");
+ await
expect(dagsFolderRow.getByTestId("table-cell-value")).not.toBeEmpty();
});
});