This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new f1f1feb9dbb update readme with new contribution section (#59312)
f1f1feb9dbb is described below
commit f1f1feb9dbbf3d26746130bd7c4d08266fc8161a
Author: Rahul Vats <[email protected]>
AuthorDate: Thu Dec 11 19:40:44 2025 +0530
update readme with new contribution section (#59312)
---
airflow-core/src/airflow/ui/tests/e2e/README.md | 40 ++++++++++++++++++-------
1 file changed, 30 insertions(+), 10 deletions(-)
diff --git a/airflow-core/src/airflow/ui/tests/e2e/README.md
b/airflow-core/src/airflow/ui/tests/e2e/README.md
index fb5c8895875..da7597ec716 100644
--- a/airflow-core/src/airflow/ui/tests/e2e/README.md
+++ b/airflow-core/src/airflow/ui/tests/e2e/README.md
@@ -138,17 +138,37 @@ Common options:
- `--test-pattern` - Run specific test file
- `--workers` - Number of parallel workers
-## Test Coverage
+## Contributing New Tests
-Current tests:
+This framework uses the **Page Object Model (POM)** pattern. Each page's
elements and interactions are encapsulated in a page class.
-- Login flow
-- DAG triggering
-- DAG run status
+### Steps to Add a New Test
-Planned tests:
+1. **Create a page object** (if needed) in `pages/`
+ - Extend `BasePage` and define page elements as locators
+ - Add methods for page interactions
+ - See existing pages: [LoginPage.ts](pages/LoginPage.ts),
[DagsPage.ts](pages/DagsPage.ts)
-- DAG pause/unpause
-- Task details
-- Connections
-- Variables
+2. **Create a spec file** in `specs/`
+ - Import page objects and write test steps
+ - See existing test: [dag-trigger.spec.ts](specs/dag-trigger.spec.ts)
+
+3. **Run tests locally**
+
+ ```bash
+ breeze testing ui-e2e-tests --test-pattern "your-test.spec.ts"
+ ```
+
+4. **Submit PR**
+
+### Best Practices
+
+- Use `data-testid` attributes for selectors when available
+- Keep tests independent - each test should set up its own state
+- Add meaningful assertions, not just navigation checks
+
+### Naming Convention
+
+- Spec files: `<feature>.spec.ts`
+- Page objects: `<Page>Page.ts`
+- Test names: Start with "should"