Repository navigation
Conversation
Runs against the published seedplatform/seed image; no SEED source needed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The route matrix is incomplete and contains an invalid route, while accessibility suppression can hide new violations.
5 open findings
What changed in this PR
Adds deterministic Playwright end-to-end testing and CI coverage for the Angular frontend.
Changes:
- Adds smoke, accessibility, authentication, dataset, and inventory tests.
- Provides Docker-backed test data and browser-test configuration.
- Runs tests on pull requests,
main, nightly schedules, and manual dispatches.
Validation: Static review only; the PR reports 102 local passes, but the new workflow has not run yet.
| File | Description |
|---|---|
.github/workflows/e2e.yml |
Defines browser-test CI execution and artifacts. |
e2e/.gitignore |
Excludes generated test artifacts. |
e2e/README.md |
Documents setup and execution. |
e2e/docker-compose.yml |
Provides isolated backend services. |
e2e/package-lock.json |
Locks test dependencies. |
e2e/package.json |
Declares Playwright tooling and scripts. |
e2e/playwright.config.ts |
Configures desktop/mobile projects and reporting. |
e2e/seed-data.py |
Seeds inventory fixtures. |
e2e/tests/a11y.spec.ts |
Runs axe accessibility scans. |
e2e/tests/fixtures.ts |
Captures runtime and API failures. |
e2e/tests/flows.spec.ts |
Tests key user workflows. |
e2e/tests/global-setup.ts |
Creates authenticated browser state. |
e2e/tests/known-issues.ts |
Records expected failures and accessibility baselines. |
e2e/tests/routes.ts |
Defines route and detail-tab coverage. |
e2e/tests/smoke.spec.ts |
Verifies rendering, errors, and overflow. |
Files not reviewed (1)
- e2e/package-lock.json: Generated file
🧠 Review effort: Balanced
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
| test(`axe: ${route}`, async ({ page }) => { | ||
| await gotoSettled(page, route) | ||
| const results = await new AxeBuilder({ page }).withTags(['wcag2a', 'wcag2aa', 'wcag21aa', 'wcag22aa']).analyze() | ||
| const serious = results.violations.filter((v) => (v.impact === 'critical' || v.impact === 'serious') && !(v.id in KNOWN_AXE_RULES)) |
| @@ -0,0 +1,47 @@ | |||
| // Static (parameter-free) routes under /ng-app. Keep in sync with src/app/**/*.routes.ts. | |||
| '/organizations/labels', | ||
| '/organizations/members', | ||
| '/organizations/data-quality/properties', | ||
| '/organizations/derived-columns', |
| ] | ||
|
|
||
| // Tabs under /properties/:id (id resolved at runtime from the API). | ||
| export const PROPERTY_TABS = ['', '/analyses', '/cross-cycles', '/meters', '/notes', '/sensors', '/timeline', '/ubids'] |
Comment on lines
+3
to
+7
| export interface Problems { | ||
| console: string[] | ||
| pageErrors: string[] | ||
| http: string[] | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Adds a deterministic (no AI) Playwright suite in
e2e/plus.github/workflows/e2e.yml.Tests
smoke.spec.ts: visits ~40 routes and property detail tabs; fails on console/page errors, failing/api/calls, blank pages, horizontal overflow (390px for@mobile).a11y.spec.ts: axe-core WCAG A/AA on core pages (all routes withSEED_E2E_A11Y_ALL=1); only new critical/serious violations fail.flows.spec.ts: bad sign-in, auth redirect, create dataset, inventory grid loads.known-issues.ts: tracked bugs (/organizations,/organizations/columns,/insights) usetest.fail()so the suite goes red once they are fixed.Backend:
e2e/docker-compose.ymluses the publishedseedplatform/seed:developimage (override withSEED_IMAGE); no SEED checkout needed.e2e/seed-data.pyseeds minimal inventory becausecreate_and_load_sample_datais currently broken in SEED.CI: every PR, pushes to
main, nightly (full a11y scan), manual dispatch.Tested:
cd e2e && PW_CHANNEL=chrome npx playwright testagainst the published image: 102 passed. The workflow itself has not yet run in GitHub Actions; this PR is its first run.