This is an automated email from the ASF dual-hosted git repository.

rahulvats pushed a commit to branch v3-2-test
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/v3-2-test by this push:
     new bd0bd3383d7 [v3-2-test] fix: mark flaky UI E2E tests as fixme (#64445) 
(#64454)
bd0bd3383d7 is described below

commit bd0bd3383d713bdf8f42c561defadaa3e542c7cd
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Mar 30 10:29:50 2026 +0530

    [v3-2-test] fix: mark flaky UI E2E tests as fixme (#64445) (#64454)
    
    Mark tests that consistently fail in scheduled CI runs as
    test.fixme() and add xcoms.spec.ts to testIgnore. Identified
    by analyzing the last 6 scheduled test runs with E2E failures.
    (cherry picked from commit 24377867836177c1b27a1b401e2e9ef250bce32a)
    
    Co-authored-by: Jarek Potiuk <[email protected]>
---
 airflow-core/src/airflow/ui/playwright.config.ts                 | 1 +
 airflow-core/src/airflow/ui/tests/e2e/specs/backfill.spec.ts     | 6 ++++--
 .../src/airflow/ui/tests/e2e/specs/dag-audit-log.spec.ts         | 2 +-
 .../src/airflow/ui/tests/e2e/specs/dag-calendar-tab.spec.ts      | 9 +++++----
 airflow-core/src/airflow/ui/tests/e2e/specs/dag-code-tab.spec.ts | 4 ++--
 airflow-core/src/airflow/ui/tests/e2e/specs/dags-list.spec.ts    | 4 ++--
 airflow-core/src/airflow/ui/tests/e2e/specs/events-page.spec.ts  | 2 +-
 .../src/airflow/ui/tests/e2e/specs/task-instances.spec.ts        | 6 +++---
 8 files changed, 19 insertions(+), 15 deletions(-)

diff --git a/airflow-core/src/airflow/ui/playwright.config.ts 
b/airflow-core/src/airflow/ui/playwright.config.ts
index 36351c3bc86..cbd1e7ea728 100644
--- a/airflow-core/src/airflow/ui/playwright.config.ts
+++ b/airflow-core/src/airflow/ui/playwright.config.ts
@@ -118,6 +118,7 @@ export default defineConfig({
     "**/task-logs.spec.ts",
     "**/dag-tasks.spec.ts",
     "**/variable.spec.ts",
+    "**/xcoms.spec.ts",
   ],
 
   timeout: 30_000,
diff --git a/airflow-core/src/airflow/ui/tests/e2e/specs/backfill.spec.ts 
b/airflow-core/src/airflow/ui/tests/e2e/specs/backfill.spec.ts
index b97d31d8b46..609a0bc6c1b 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/specs/backfill.spec.ts
+++ b/airflow-core/src/airflow/ui/tests/e2e/specs/backfill.spec.ts
@@ -86,7 +86,9 @@ test.describe("Backfill", () => {
     });
 
     for (const config of backfillConfigs) {
-      test(`verify backfill with '${REPROCESS_API_TO_UI[config.behavior]}' 
behavior`, async ({ page }) => {
+      test.fixme(`verify backfill with 
'${REPROCESS_API_TO_UI[config.behavior]}' behavior`, async ({
+        page,
+      }) => {
         const backfillPage = new BackfillPage(page);
 
         await backfillPage.navigateToBackfillsTab(testDagId);
@@ -199,7 +201,7 @@ test.describe("Backfill", () => {
       await expect(backfillPage.unpauseButton).toBeVisible({ timeout: 10_000 
});
     });
 
-    test("verify cancel backfill", async () => {
+    test.fixme("verify cancel backfill", async () => {
       const dates = FIXED_DATES.controls.cancel;
 
       // Create + pause atomically to eliminate race with scheduler.
diff --git a/airflow-core/src/airflow/ui/tests/e2e/specs/dag-audit-log.spec.ts 
b/airflow-core/src/airflow/ui/tests/e2e/specs/dag-audit-log.spec.ts
index 6b6989ad1a8..9ab2894694f 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/specs/dag-audit-log.spec.ts
+++ b/airflow-core/src/airflow/ui/tests/e2e/specs/dag-audit-log.spec.ts
@@ -87,7 +87,7 @@ test.describe("DAG Audit Log", () => {
     await expect(dagIdColumn).not.toBeVisible();
   });
 
-  test("verify audit log entries display valid data", async () => {
+  test.fixme("verify audit log entries display valid data", async () => {
     await eventsPage.navigateToAuditLog(testDagId);
 
     const rows = await eventsPage.getEventLogRows();
diff --git 
a/airflow-core/src/airflow/ui/tests/e2e/specs/dag-calendar-tab.spec.ts 
b/airflow-core/src/airflow/ui/tests/e2e/specs/dag-calendar-tab.spec.ts
index f6160e560e7..e8818791a7d 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/specs/dag-calendar-tab.spec.ts
+++ b/airflow-core/src/airflow/ui/tests/e2e/specs/dag-calendar-tab.spec.ts
@@ -96,7 +96,7 @@ test.describe("DAG Calendar Tab", () => {
     await calendar.navigateToCalendar(dagId);
   });
 
-  test("verify calendar grid renders", async () => {
+  test.fixme("verify calendar grid renders", async () => {
     await calendar.switchToHourly();
     await calendar.verifyMonthGridRendered();
   });
@@ -130,7 +130,8 @@ test.describe("DAG Calendar Tab", () => {
     expect(states).toContain("failed");
   });
 
-  test("failed filter shows only failed runs", async () => {
+  // The scheduler can override the PATCH-to-failed state back to success 
before tests run.
+  test.fixme("failed filter shows only failed runs", async () => {
     await calendar.switchToHourly();
 
     const totalStates = await calendar.getManualRunStates();
@@ -158,7 +159,7 @@ test.describe("DAG Calendar Tab", () => {
     expect(failedCount).toBeLessThan(totalCount);
   });
 
-  test("color scale changes between total and failed view", async () => {
+  test.fixme("color scale changes between total and failed view", async () => {
     await calendar.switchToHourly();
 
     const totalColors = await calendar.getActiveCellColors();
@@ -171,7 +172,7 @@ test.describe("DAG Calendar Tab", () => {
     expect(failedColors).not.toEqual(totalColors);
   });
 
-  test("cells reflect failed view mode attribute", async () => {
+  test.fixme("cells reflect failed view mode attribute", async () => {
     await calendar.switchToHourly();
     await calendar.switchToFailedView();
 
diff --git a/airflow-core/src/airflow/ui/tests/e2e/specs/dag-code-tab.spec.ts 
b/airflow-core/src/airflow/ui/tests/e2e/specs/dag-code-tab.spec.ts
index f4577873e42..6d4d9c0680b 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/specs/dag-code-tab.spec.ts
+++ b/airflow-core/src/airflow/ui/tests/e2e/specs/dag-code-tab.spec.ts
@@ -35,11 +35,11 @@ test.describe("DAG Code Tab", () => {
     await codePage.verifySourceCodeDisplayed();
   });
 
-  test("Verify syntax highlighting is applied", async () => {
+  test.fixme("Verify syntax highlighting is applied", async () => {
     await codePage.verifySyntaxHighlighting();
   });
 
-  test("Verify code is scrollable for long files", async () => {
+  test.fixme("Verify code is scrollable for long files", async () => {
     await codePage.verifyCodeIsScrollable();
   });
 
diff --git a/airflow-core/src/airflow/ui/tests/e2e/specs/dags-list.spec.ts 
b/airflow-core/src/airflow/ui/tests/e2e/specs/dags-list.spec.ts
index 6181bbc47a7..ef2e75b2aab 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/specs/dags-list.spec.ts
+++ b/airflow-core/src/airflow/ui/tests/e2e/specs/dags-list.spec.ts
@@ -28,7 +28,7 @@ test.describe("Dag Trigger Workflow", () => {
     dagsPage = new DagsPage(page);
   });
 
-  test("should successfully trigger a Dag run", async () => {
+  test.fixme("should successfully trigger a Dag run", async () => {
     test.setTimeout(7 * 60 * 1000);
 
     const dagRunId = await dagsPage.triggerDag(testDagId);
@@ -48,7 +48,7 @@ test.describe("Dag Details Tab", () => {
     dagsPage = new DagsPage(page);
   });
 
-  test("should successfully verify details tab", async () => {
+  test.fixme("should successfully verify details tab", async () => {
     test.setTimeout(120_000);
     await dagsPage.verifyDagDetails(testDagId);
   });
diff --git a/airflow-core/src/airflow/ui/tests/e2e/specs/events-page.spec.ts 
b/airflow-core/src/airflow/ui/tests/e2e/specs/events-page.spec.ts
index d8638e7026a..e7ac0da78f2 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/specs/events-page.spec.ts
+++ b/airflow-core/src/airflow/ui/tests/e2e/specs/events-page.spec.ts
@@ -123,7 +123,7 @@ test.describe("Events with Generated Data", () => {
     }).toPass({ timeout: 20_000 });
   });
 
-  test("verify filter by DAG ID", async () => {
+  test.fixme("verify filter by DAG ID", async () => {
     await eventsPage.navigate();
     await eventsPage.addFilter("DAG ID");
     await eventsPage.setFilterValue("DAG ID", testDagId);
diff --git a/airflow-core/src/airflow/ui/tests/e2e/specs/task-instances.spec.ts 
b/airflow-core/src/airflow/ui/tests/e2e/specs/task-instances.spec.ts
index 08da9fce26d..b7f6155de33 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/specs/task-instances.spec.ts
+++ b/airflow-core/src/airflow/ui/tests/e2e/specs/task-instances.spec.ts
@@ -129,12 +129,12 @@ test.describe("Task Instances Page", () => {
     taskInstancesPage = new TaskInstancesPage(page);
   });
 
-  test("verify task instances table displays data", async () => {
+  test.fixme("verify task instances table displays data", async () => {
     await taskInstancesPage.navigate();
     await taskInstancesPage.verifyTaskInstancesExist();
   });
 
-  test("verify task details display correctly", async () => {
+  test.fixme("verify task details display correctly", async () => {
     await taskInstancesPage.navigate();
     await taskInstancesPage.verifyTaskDetailsDisplay();
   });
@@ -144,7 +144,7 @@ test.describe("Task Instances Page", () => {
     await taskInstancesPage.verifyStateFiltering("Failed");
   });
 
-  test("verify filtering by success state", async () => {
+  test.fixme("verify filtering by success state", async () => {
     await taskInstancesPage.navigate();
     await taskInstancesPage.verifyStateFiltering("Success");
   });

Reply via email to