-
Notifications
You must be signed in to change notification settings - Fork 78
feat(FR-1329): add a github action for regression test #4428
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
base: main
Are you sure you want to change the base?
Conversation
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has required the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
ceb5628 to
e6ed8de
Compare
c79e0fd to
fc952ad
Compare
2348987 to
6b456de
Compare
6b456de to
080c2e5
Compare
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 adds end-to-end testing with Playwright to run automatically on pull requests against different LTS versions of the backend API. The implementation configures CI workflows, enhances login utilities to support IAM/ID sign-in mode switching, and adjusts Playwright configuration for CI environments.
Key Changes:
- New GitHub Actions workflow for running Playwright tests against multiple LTS versions
- Enhanced login utility with sign-in mode switching and conditional endpoint handling
- CI-optimized Playwright configuration with adjusted timeouts and reporters
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/e2e-test.yml | Implements GitHub Actions workflow for E2E testing with matrix strategy for LTS versions |
| e2e/utils/test-util.ts | Adds sign-in mode switcher function and enhances login utility with conditional endpoint input handling |
| playwright.config.ts | Configures CI-specific timeout settings and reporter options |
| src/components/backend-ai-login.ts | Adds data-testid attribute for test targeting |
| tsconfig.json | Includes Playwright config in TypeScript compilation |
| export const webServerEndpoint = 'http://127.0.0.1:8090'; | ||
| export const visualRegressionWebserverEndpoint = 'http://10.122.10.216:8090'; | ||
|
|
||
| export const changeSigninInMode = async (page: Page, mode: 'IAM' | 'ID') => { |
Copilot
AI
Nov 25, 2025
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.
Corrected spelling of 'changeSigninInMode' to 'changeSignInMode' (capitalized 'I' in 'In').
| endpoint: string, | ||
| ) { | ||
| await page.goto(webuiEndpoint); | ||
| await changeSigninInMode(page, 'ID'); |
Copilot
AI
Nov 25, 2025
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.
Function call should use corrected name 'changeSignInMode' to match the function definition.
| retries: process.env.CI ? 2 : 0, | ||
| /* Opt out of parallel tests on CI. */ | ||
| workers: process.env.CI ? 1 : undefined, | ||
| // workers: process.env.CI ? 4 : undefined, |
Copilot
AI
Nov 25, 2025
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.
Commented-out code should be removed rather than left in the codebase. If parallel workers are intentionally disabled, consider adding a comment explaining why.
| // workers: process.env.CI ? 4 : undefined, |
| /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ | ||
| trace: "on-first-retry", | ||
| }, | ||
| timeout: process.env.CI ? 10 * 1000 : undefined, |
Copilot
AI
Nov 25, 2025
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.
[nitpick] The 10-second timeout for CI might be too short for E2E tests. Consider documenting why this specific timeout was chosen or using a named constant to make the value more maintainable.
ironAiken2
left a comment
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.
Please check the copilot review.

Add E2E Testing with Playwright for CI
This PR adds end-to-end testing capabilities using Playwright that run automatically on pull requests. The implementation:
Checklist: