diff --git a/.github/workflows/a11y-tests.yaml b/.github/workflows/a11y-tests.yaml new file mode 100644 index 000000000..aa587355d --- /dev/null +++ b/.github/workflows/a11y-tests.yaml @@ -0,0 +1,29 @@ +name: A11y Tests + +on: + pull_request: + types: [labeled, opened, synchronize, reopened] + workflow_dispatch: + +jobs: + + a11y-test: + name: Run A11y Tests + if: contains(github.event.pull_request.labels.*.name, 'a11y-test') + runs-on: ${{ fromJSON(vars.RUNNER) }} + timeout-minutes: 35 + steps: + - uses: browser-actions/setup-chrome@c785b87e244131f27c9f19c1a33e2ead956ab7ce # v1.7.3 + with: + install-dependencies: true + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda #v4.1.0 + with: + run_install: false + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 + with: + node-version: 20 + cache: 'pnpm' + cache-dependency-path: '**/pnpm-lock.yaml' + - run: pnpm install + - run: pnpm test-a11y \ No newline at end of file diff --git a/package.json b/package.json index fc7a50e4f..92dbef78b 100755 --- a/package.json +++ b/package.json @@ -26,6 +26,9 @@ "test:addons-rose": "pnpm run --filter rose test", "test:ui-admin": "pnpm run --filter admin test", "test:ui-desktop": "pnpm run --filter desktop test", + "test-a11y": "concurrently \"pnpm:test-a11y:*\" --names \"test-a11y:\"", + "test-a11y:admin": "pnpm run --filter admin test-a11y", + "test-a11y:desktop": "pnpm run --filter desktop test-a11y", "compliance:licenses": "license-checker --onlyAllow 'Apache*;Apache License, Version 2.0;Apache-2.0;Apache 2.0;Artistic-2.0;BSD;BSD-3-Clause;CC-BY-3.0;CC-BY-4.0;CC0-1.0;ISC;MIT;MPL-2.0;BUSL-1.1;Public Domain;Python-2.0;Unicode-TOU;Unlicense;WTFPL;BlueOak-1.0.0' --excludePackages 'boundary-ui;admin@0.0.0;desktop@0.0.0;e2e-tests@0.0.0;cycle@1.0.3;cldr-core@43.1.0;make-plural@7.2.0;@hashicorp/ember-asciinema-player@0.0.0;path-scurry@1.10.1'", "doc:toc": "doctoc README.md", "prepare": "husky" diff --git a/ui/admin/package.json b/ui/admin/package.json index 659229907..59473b60a 100644 --- a/ui/admin/package.json +++ b/ui/admin/package.json @@ -31,8 +31,9 @@ "start": "ember serve", "clean:coverage": "rm -rf coverage_* || true", "test": "pnpm clean:coverage && pnpm test:ember && pnpm test:finalize", - "test-a11y": "ENABLE_A11Y_AUDIT=true ember test", - "test-a11y:dark": "COLOR_THEME=dark pnpm test-a11y", + "test-a11y": "concurrently \"pnpm:test-a11y:*\" --names \"test-a11y:\"", + "test-a11y:light": "ENABLE_A11Y_AUDIT=true ember test", + "test-a11y:dark": "COLOR_THEME=dark pnpm test-a11y:light --test-port=7358", "test:ember": "COVERAGE=true ember exam --test-port 0 --split=4 --parallel=1 --random", "test:finalize": "ember coverage-merge && pnpm clean:coverage" }, diff --git a/ui/desktop/package.json b/ui/desktop/package.json index a00b3bc6b..1394400a9 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -34,8 +34,9 @@ "clean:coverage": "rm -rf coverage_* || true", "test": "pnpm clean:coverage && pnpm test:ember && pnpm test:finalize", "test:ember": "cross-env COVERAGE=true ember exam --test-port 0 --split=4 --parallel=1 --random", - "test-a11y": "ENABLE_A11Y_AUDIT=true ember test", - "test-a11y:dark": "COLOR_THEME=dark pnpm test-a11y", + "test-a11y": "concurrently \"pnpm:test-a11y:*\" --names \"test-a11y:\"", + "test-a11y:light": "ENABLE_A11Y_AUDIT=true ember test --test-port=7359", + "test-a11y:dark": "COLOR_THEME=dark pnpm test-a11y:light --test-port=7360", "postinstall": "pnpm --dir electron-app install", "test:finalize": "ember coverage-merge && pnpm clean:coverage" },