-
Notifications
You must be signed in to change notification settings - Fork 9
[Devops-1004-1469] Pick flaky e2e tests and update demosetup gha #1685
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…ew-log.spec.js test
… mwaiyee/1004-1469
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR consolidates multiple test improvements focused on enhancing test reliability and consistency. The changes include adding retry configurations to flaky tests, improving test naming conventions, fixing URL references, and updating the CI/CD workflow for better development environment handling.
Changes:
- Added retry configuration (
test.describe.configure({ retries: 3 })) to multiple E2E test files to handle flaky tests - Improved test naming consistency by adding TEST_NAME constants and SHOULD_SKIP flags to several test files
- Fixed hardcoded URLs to use relative paths in test files
- Updated test assertions to use dynamic values (dataset_id, schema_name) instead of hardcoded values
- Modified global retry configuration in playwright.config.ts for CI environments
- Enhanced GitHub workflow to handle flow base package.json changes
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/e2e/tests/17-configurations/CDM-creation.spec.ts | Added retry configuration for flaky test handling |
| tests/e2e/tests/14-data-quality-dashboard/execute-data-quality.spec.ts | Added retry configuration for flaky test handling |
| tests/e2e/tests/13-data-characterization/execute-data-characterization.spec.ts | Added retry configuration for flaky test handling |
| tests/e2e/tests/12-concepts/concept-sets.spec.ts | Added retry configuration for flaky test handling |
| tests/e2e/tests/10-jobs/jobs-execute-view-log.spec.js | Changed SHOULD_SKIP to false, fixed URL, improved test to use dynamic values, added comments |
| tests/e2e/tests/09-patient-analytics/patient-list.spec.ts | Added retry configuration for flaky test handling |
| tests/e2e/tests/09-patient-analytics/filter-cards.spec.ts | Added retry configuration for flaky test handling |
| tests/e2e/tests/09-patient-analytics/extended-query-logic.spec.ts | Added retry configuration for flaky test handling |
| tests/e2e/tests/09-patient-analytics/cohort-entry-and-exit.spec.ts | Added retry configuration for flaky test handling |
| tests/e2e/tests/09-patient-analytics/bookmark.spec.ts | Added retry configuration for flaky test handling |
| tests/e2e/tests/09-patient-analytics/atlas_cohort_definition.spec.ts | Added TEST_NAME constant and SHOULD_SKIP flag for consistency |
| tests/e2e/tests/08-dataflow/revert-specific-version.spec.ts | Added TEST_NAME constant and SHOULD_SKIP flag for consistency |
| tests/e2e/tests/05-datasets/new-schema-omop-cdm-plugin-omop54.spec.ts | Fixed semicolon formatting inconsistency |
| tests/e2e/tests/05-datasets/new-schema-data-management-plugin-omop.spec.ts | Reformatted indentation to use consistent 2-space indentation |
| tests/e2e/tests/05-datasets/dataset-overview-search.spec.ts | Added TEST_NAME, SHOULD_SKIP, and retry configuration for consistency |
| tests/e2e/tests/05-datasets/copy-datasets-id-schema-name.spec.js | Fixed hardcoded URL to relative path, added retry configuration |
| tests/e2e/playwright.config.ts | Changed CI retry configuration from 3 to 0 |
| .github/workflows/d2e-demosetup-dev.yml | Added flow_package_json change detection and docker-compose volume mount handling |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| screenshot: 'only-on-failure' // Take screenshot of page if test fails | ||
| }, | ||
| retries: process.env.CI ? 3 : 0, // retry failed tests once | ||
| retries: process.env.CI ? 0 : 0, // retry failed tests once |
Copilot
AI
Jan 19, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The retries configuration is being changed from 3 to 0 for CI environments. However, multiple test files are adding test.describe.configure with retries set to 3. This creates an inconsistency where individual tests configure 3 retries at the describe level, but the global CI retry setting is being reduced to 0. Consider whether the global retry setting should remain at 3 to align with the individual test retry configurations, or remove the describe-level retry configurations if the intent is to disable retries in CI.
| retries: process.env.CI ? 0 : 0, // retry failed tests once | |
| retries: process.env.CI ? 3 : 0, // retry failed tests up to 3 times in CI |
| await page.getByRole('button', { name: 'View Results' }).click() | ||
| await expect(page.locator('.loading-animation-component')).not.toBeVisible() | ||
| await expect(page.getByTestId('dialog-title')).toHaveText(/Results for dataset: demo_cdm .+/) | ||
| await expect(page.getByTestId('dialog-title')).toHaveText(/Results for dataset+/) |
Copilot
AI
Jan 19, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The regex pattern has been changed from '/Results for dataset: demo_cdm .+/' to '/Results for dataset+/'. This appears to be an incomplete regex pattern. The '+' quantifier requires a preceding character or group to repeat. If the intent is to match "Results for dataset" followed by any characters, the pattern should be '/Results for dataset.+/' or '/Results for dataset:.*/' depending on whether the colon is required.
| await expect(page.getByTestId('dialog-title')).toHaveText(/Results for dataset+/) | |
| await expect(page.getByTestId('dialog-title')).toHaveText(/Results for dataset.+/) |
| await page | ||
| .locator('div:nth-child(3) > .p-label__body > .schema-form-property__fields > .p-base-input > .p-textarea__control') | ||
| .click() | ||
| // Fill up Schemaname field |
Copilot
AI
Jan 19, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing space after the double slashes in the comment. Should be '// Fill up Schemaname field' instead of '// Fill up Schemaname field ' (note the trailing space).
| // Fill up Schemaname field | |
| // Fill up Schemaname field |
| const TEST_NAME = 'jobs-execute-view-log-and-result' | ||
| const SHOULD_SKIP = true | ||
| const SHOULD_SKIP = false | ||
| test.fixme(SHOULD_SKIP, `${TEST_NAME} test is temporarily disabled.`) |
Copilot
AI
Jan 19, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This test file is missing the 'test.describe.configure({ retries: 3 })' configuration that was added to other test files in this PR. For consistency, consider adding this retry configuration after line 5, similar to the pattern used in other test files like CDM-creation.spec.ts, execute-data-quality.spec.ts, etc.
| test.fixme(SHOULD_SKIP, `${TEST_NAME} test is temporarily disabled.`) | |
| test.fixme(SHOULD_SKIP, `${TEST_NAME} test is temporarily disabled.`) | |
| test.describe.configure({ retries: 3 }) |
| import { test, expect } from '@playwright/test' | ||
| const TEST_NAME = 'atlas-lite cohort creation' | ||
| const SHOULD_SKIP = false | ||
| test.fixme(SHOULD_SKIP, `${TEST_NAME} test is temporarily disabled.`) |
Copilot
AI
Jan 19, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This test file is missing the 'test.describe.configure({ retries: 3 })' configuration that was added to other test files in this PR. For consistency, consider adding this retry configuration after line 4, similar to the pattern used in other test files like patient-list.spec.ts, filter-cards.spec.ts, etc.
| test.fixme(SHOULD_SKIP, `${TEST_NAME} test is temporarily disabled.`) | |
| test.fixme(SHOULD_SKIP, `${TEST_NAME} test is temporarily disabled.`) | |
| test.describe.configure({ retries: 3 }) |
| import { test, expect } from '@playwright/test' | ||
| const TEST_NAME = 'dataflow-revert-specific-version' | ||
| const SHOULD_SKIP = false | ||
| test.fixme(SHOULD_SKIP, `${TEST_NAME} test is temporarily disabled.`) |
Copilot
AI
Jan 19, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This test file is missing the 'test.describe.configure({ retries: 3 })' configuration that was added to other test files in this PR. For consistency, consider adding this retry configuration after line 4, similar to the pattern used in other test files.
| test.fixme(SHOULD_SKIP, `${TEST_NAME} test is temporarily disabled.`) | |
| test.fixme(SHOULD_SKIP, `${TEST_NAME} test is temporarily disabled.`) | |
| test.describe.configure({ retries: 3 }) |
PR: #1506
PR: #1481
Merge Checklist
Please cross check this list if additions / modifications needs to be done on top of your core changes and tick them off. Reviewer can as well glance through and help the developer if something is missed out.
developbranch)