add E2E tests for DAG Runs tab#59754
Conversation
|
Congratulations on your first Pull Request and welcome to the Apache Airflow community! If you have any issues or are unsure about any anything please check our Contributors' Guide (https://github.com/apache/airflow/blob/main/contributing-docs/README.rst)
|
|
Thanks for the PR @Sahil-Shadwal I will review soon |
|
@Sahil-Shadwal can you look at failures? |
On it |
|
@Sahil-Shadwal All of dag run tab test failing can you check? |
Progress so far: I've resolved the major blocking issues preventing the tests from running: Fixed the this.waitForPageLoad is not a function crash by implementing the correct Playwright wait states. My Ask: Is there a specific attribute or data-testid convention I should be using for the Runs tab table specifically?
|
|
@Sahil-Shadwal Thanks for working on this! A few things to address:
Let me know if you have questions! |
@Sahil-Shadwal Thanks for the update on your progress! 1. data-testid conventions for Runs tab The ones you have added in tests looks correct. The issue you're seeing with element location is likely timing - the table loads asynchronously. Make sure you're waiting for the table to be visible before querying rows: await this.runsTable.waitFor({ state: "visible", timeout: 10_000 }); 2. Seeding test data You don't need to seed data manually. Instead, create the data you need in test.beforeAll(async ({ browser }) => { const context = await browser.newContext({ storageState: AUTH_FILE }); await setupPage.triggerDag(testDagId); const response = await page.request.get( if (runId) { await context.close(); 3. waitForPageLoad issue If |
|
@Sahil-Shadwal can you resolve conflicts? |
✅done |
- Add tests for run details navigation and verification - Implement filtering tests for run state and type - Add search functionality tests - Implement pagination tests with offset/limit - Add sorting tests for logical date column - Create reusable DagsPage helper methods for DAG run operations
|
@Sahil-Shadwal CI is failing can you have a look also I see you are using login in pages we should not do that |
… PR pattern - Remove LoginPage import and all login-related code - Tests now receive authenticated page from Playwright's global storageState - Initialize DagsPage directly in each test function - Matches pattern from successfully merged PRs: apache#59943, apache#59919, apache#59734 - Fixes CI failures across Chromium, Firefox, and WebKit Addresses reviewer feedback from @vatsrahul1001
Resolved conflicts by keeping our DAG-specific runs tab test (DAG-006). Main branch has a different dag-runs.spec.ts for global DAG Runs page (DAGRUNS-001).
|
Hey, thanks for sticking with me on this - I know it's taken way longer than it should have. Really appreciate you taking the time to explain the patterns. Just pushed a fix removing the LoginPage stuff (finally caught what you meant about not using login in pages). Looked at how the other merged PRs handle auth (#59943, #59919, etc.) and matched that pattern - just using the global storageState: AUTH_FILE instead. Quick summary of what changed: Removed LoginPage completely But honestly, if you'd rather hand this off to someone else at this point, I totally get it - I know I've already taken up a lot of your time. Thanks again for the help! |
Thanks for the changes @Sahil-Shadwal, I see static checks and tests are still failing can you have a look? |
|
@Sahil-Shadwal can you resolve conflicts and look at failing tests? |
|
@vatsrahul1001 sorry to disappoint , i tried to fix these but i am getting nowhere and i am busy rn so please assign this issue to someone else |
@Sahil-Shadwal you do not need to be disappoint. Feel free to pick up new issues when you have bandwidth |





Add E2E tests for DAG Runs tab functionality.
Changes
data-testidto DagRuns.tsx for E2E testingTest Coverage
✅ Navigate to Runs tab
✅ Verify run details (ID, state, times, duration)
✅ Click run to view details
✅ Filter and search functionality
✅ Pagination
Closes #59541
Related issues: #59028
^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named
{pr_number}.significant.rstor{issue_number}.significant.rst, in airflow-core/newsfragments.