From fefca9c3964ed325e74f0a733895bc747a4a7da1 Mon Sep 17 00:00:00 2001 From: Stalgia Grigg Date: Wed, 3 Sep 2025 09:57:24 -0700 Subject: [PATCH 01/21] pinned aria-at version --- .github/workflows/runtest.yml | 1 + .github/workflows/update-aria-at.yml | 141 +++++++++++++++++++++++++++ README.md | 33 +++++-- config/aria-at.version | 1 + docs/database.md | 2 +- docs/local-development.md | 4 +- server/scripts/import-tests/index.js | 40 ++++++-- 7 files changed, 206 insertions(+), 16 deletions(-) create mode 100644 .github/workflows/update-aria-at.yml create mode 100644 config/aria-at.version diff --git a/.github/workflows/runtest.yml b/.github/workflows/runtest.yml index 372f81a53..d08ed6208 100644 --- a/.github/workflows/runtest.yml +++ b/.github/workflows/runtest.yml @@ -43,6 +43,7 @@ jobs: yarn sequelize:test db:migrate yarn sequelize:test db:seed:all yarn workspace server db-import-tests:test -c "${IMPORT_ARIA_AT_TESTS_COMMIT_1} ${IMPORT_ARIA_AT_TESTS_COMMIT_2} ${IMPORT_ARIA_AT_TESTS_COMMIT_3} ${IMPORT_ARIA_AT_TESTS_COMMIT_4}" + # Import pinned current commit as well (no args defaults to pinned) yarn workspace server db-import-tests:test yarn workspace server db-populate-sample-data:test # yarn test would run all of these in serial, however we split this up to allow it to continue diff --git a/.github/workflows/update-aria-at.yml b/.github/workflows/update-aria-at.yml new file mode 100644 index 000000000..3139aa384 --- /dev/null +++ b/.github/workflows/update-aria-at.yml @@ -0,0 +1,141 @@ +name: Update pinned ARIA-AT data + +on: + schedule: + - cron: '0 6 * * *' + workflow_dispatch: {} + +concurrency: + group: update-aria-at + cancel-in-progress: false + +jobs: + bump: + name: Test latest upstream and update pin if clean + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: development + + - name: Install NodeJS 20 + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + + - name: Remove pre-bundled postgres + run: | + sudo DEBIAN_FRONTEND=noninteractive apt-get purge -y postgresql\* + sudo apt-get autoremove -y + sudo rm -rf /var/lib/postgresql/ + sudo rm -rf /etc/postgresql/ + + - name: Install PostgreSQL 12 + run: | + wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - + sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' + sudo apt-get -y update + sudo apt-get -y install postgresql-12 postgresql-client-12 + + - name: Configure database + run: | + sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/12/main/postgresql.conf + sudo pg_ctlcluster 12 main restart + + - name: Install deps + run: | + yarn --frozen-lockfile + npx patch-package + + - name: Prepare test database + run: | + source config/test.env + sudo -u postgres createdb ${PGDATABASE} + sudo -u postgres psql -c "CREATE ROLE ${PGUSER} WITH LOGIN PASSWORD '${PGPASSWORD}'" + sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE ${PGDATABASE} to ${PGUSER};" + yarn sequelize:test db:migrate + yarn sequelize:test db:seed:all + + - name: Determine latest upstream SHA + id: latest + run: | + set -e + LATEST=$(git ls-remote https://github.com/w3c/aria-at HEAD | cut -f1) + PINNED=$(cat config/aria-at.version || true) + echo "latest=$LATEST" >> $GITHUB_OUTPUT + echo "pinned=$PINNED" >> $GITHUB_OUTPUT + if [ -z "$LATEST" ]; then echo "Failed to resolve latest SHA"; exit 1; fi + if [ "$LATEST" = "$PINNED" ]; then echo "Already up to date"; exit 0; fi + + - name: Import historical commits + if: steps.latest.outputs.latest != steps.latest.outputs.pinned + run: | + source config/test.env + yarn workspace server db-import-tests:test -c "${IMPORT_ARIA_AT_TESTS_COMMIT_1} ${IMPORT_ARIA_AT_TESTS_COMMIT_2} ${IMPORT_ARIA_AT_TESTS_COMMIT_3} ${IMPORT_ARIA_AT_TESTS_COMMIT_4}" + + - name: Import latest upstream commit + if: steps.latest.outputs.latest != steps.latest.outputs.pinned + env: + ARIA_AT_PINNED_SHA: ${{ steps.latest.outputs.latest }} + run: | + yarn workspace server db-import-tests:test + + - name: Run tests + if: steps.latest.outputs.latest != steps.latest.outputs.pinned + run: | + yarn workspace shared prettier + yarn workspace client prettier + yarn workspace server prettier + yarn workspace shared lint + yarn workspace client lint + yarn workspace server lint + yarn workspace shared jest + yarn workspace client jest + yarn workspace server jest + + - name: Update pin and snapshots + if: steps.latest.outputs.latest != steps.latest.outputs.pinned + run: | + echo "${{ steps.latest.outputs.latest }}" > config/aria-at.version + yarn update-snapshots + + - name: Stage allowed files only + if: steps.latest.outputs.latest != steps.latest.outputs.pinned + run: | + set -e + git reset + git add config/aria-at.version || true + git add client/tests/e2e/snapshots || true + echo "Staged files:" + git diff --cached --name-only + + - name: Validate staged files scope + if: steps.latest.outputs.latest != steps.latest.outputs.pinned + run: | + set -e + CHANGED=$(git diff --cached --name-only) + if [ -z "$CHANGED" ]; then echo "No changes to commit"; exit 0; fi + echo "$CHANGED" | awk '{print}' | while read -r f; do + case "$f" in + config/aria-at.version) ;; + client/tests/e2e/snapshots/*|client/tests/e2e/snapshots/*/*) ;; + *) echo "Disallowed staged change: $f"; exit 1 ;; + esac + done + + - name: Commit and push to development + if: steps.latest.outputs.latest != steps.latest.outputs.pinned + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + set -e + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git commit -m "chore: bump ARIA-AT pin to ${{ steps.latest.outputs.latest }}" + git push origin HEAD:development diff --git a/README.md b/README.md index 11173bc47..7353af89a 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,50 @@ # ARIA and Assistive Technologies App (ARIA-AT App) + ## ARIA-AT APP + ARIA-AT aims to improve interoperability between different Assistive Technologies (ATs) in how they render ARIA patterns. This is achieved through running manual tests and presenting test results to AT vendors. The tests are based on examples from [WAI-ARIA Authoring Practices](https://w3c.github.io/aria-practices/), and are vetted with stakeholders following the [Working Mode](https://github.com/w3c/aria-at/wiki/Working-Mode) process. This project is managed by the [ARIA-AT Community Group](https://www.w3.org/groups/cg/aria-at) in coordination with the [Authoring Practices Task Force](https://www.w3.org/WAI/ARIA/task-forces/practices/) of the [ARIA Working Group](http://www.w3.org/WAI/ARIA/). The W3C staff contact is Daniel Montalvo. This app includes a reports page that shows the public results of manual testing across various browser / AT combinations. The app is also used by manual testers ## About this Software + This repo contains the software for running the web application that manages testers to run the manual tests, launches the tests in an iframe, stores results, and reports results once they are reviewed. This software is implemented on a react, node, express, sequelize, and postgresql stack. This repo also contains the ansible scripts for provisioning and deploying the software. The test material and test harness themselves are managed in [w3c/aria-at](https://github.com/w3c/aria-at). ## How to run this code + Documentation for getting this software running locally is available in [docs/local-development.md](docs/local-development.md) directory. ## Get involved -* Join the [community group](https://www.w3.org/community/aria-at/) -* [Sign up as a tester](https://github.com/w3c/aria-at/issues/162) for the Pilot Test (May 27 - June 2) -* [Write more tests](https://github.com/w3c/aria-at/wiki/How-to-contribute-tests) -* [Review the assertions of existing test plans](https://w3c.github.io/aria-at/review-test-plans/) -* [Review test results](https://w3c.github.io/aria-at/results/) -* Fix a [good first issue](https://github.com/w3c/aria-at/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) + +- Join the [community group](https://www.w3.org/community/aria-at/) +- [Sign up as a tester](https://github.com/w3c/aria-at/issues/162) for the Pilot Test (May 27 - June 2) +- [Write more tests](https://github.com/w3c/aria-at/wiki/How-to-contribute-tests) +- [Review the assertions of existing test plans](https://w3c.github.io/aria-at/review-test-plans/) +- [Review test results](https://w3c.github.io/aria-at/results/) +- Fix a [good first issue](https://github.com/w3c/aria-at/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) ## Conduct + All contributors to this project are expected to adhere to the Code of Conduct, available in the file named CODE_OF_CONDUCT.md. ## License + All documents in this Repository are licensed by contributors under the [W3C Document License](https://www.w3.org/Consortium/Legal/copyright-documents). + +## Pinned ARIA-AT version + +The app imports test plans from the `w3c/aria-at` repository using a pinned commit. + +- The pinned SHA lives at `config/aria-at.version`. +- Local imports without `-c` will read this file (or `ARIA_AT_PINNED_SHA`). +- CI imports historical commits for coverage and then the pinned commit. + +A scheduled workflow (`.github/workflows/update-aria-at.yml`) runs daily to: + +- Resolve the latest upstream SHA. +- Import and run tests against it. +- If tests pass, update `config/aria-at.version`, refresh client snapshots, and push directly to `development` with only those changes. diff --git a/config/aria-at.version b/config/aria-at.version new file mode 100644 index 000000000..bde7e58c7 --- /dev/null +++ b/config/aria-at.version @@ -0,0 +1 @@ +5fe7afd82fe51c185b8661276105190a59d47322 diff --git a/docs/database.md b/docs/database.md index 2b64c0721..b10005b98 100644 --- a/docs/database.md +++ b/docs/database.md @@ -33,7 +33,7 @@ The database migrations are managed by [Sequelize](https://sequelize.org/). The ``` yarn sequelize db:seed:all ``` -4. Import the most recent tests and files from the [aria-at repository](https://github.com/w3c/aria-at): +4. Import the pinned tests and files from the [aria-at repository](https://github.com/w3c/aria-at): ``` yarn db-import-tests:dev -c "5fe7afd82fe51c185b8661276105190a59d47322 1aa3b74d24d340362e9f511eae33788d55487d12 ab77d47ab19db71c635c9bb459ba5c34182e1400 d34eddbb8e751f07bd28d952de15fa7fe5f07353"; diff --git a/docs/local-development.md b/docs/local-development.md index 8ba45dbf1..3d18fe94a 100644 --- a/docs/local-development.md +++ b/docs/local-development.md @@ -17,10 +17,10 @@ yarn install ``` 2. Set up local database using the instructions provided in [database.md](database.md). - - Note: You must run `yarn db-import-tests:dev` after setting up your database to import the latest test harness into + - Note: You must run `yarn db-import-tests:dev` after setting up your database to import the pinned test harness into your project. 3. Run the server - ` yarn dev ` + `yarn dev` Now you can navigate your browser to: [http://localhost:3000/](http://localhost:3000/). You need to use localhost instead of `0.0.0.0` because the cookie needs to be treated as secure. ### Signing in as a tester, admin, or vendor diff --git a/server/scripts/import-tests/index.js b/server/scripts/import-tests/index.js index f03b5e423..658dccdd6 100644 --- a/server/scripts/import-tests/index.js +++ b/server/scripts/import-tests/index.js @@ -20,7 +20,7 @@ if (args.help) { console.log(` Default use: No arguments: - Fetch most recent aria-at tests to update database. By default, the latest commit on the default branch. + Import aria-at tests pinned by ARIA_AT_PINNED_SHA or config/aria-at.version Arguments: -h, --help Show this message. @@ -40,12 +40,38 @@ const importTestPlanVersions = async transaction => { // Get list of commits when multiple passed in as // ` -c "commit1 commit2 commitN ..."` - const commits = args.commit - ? args.commit - .trim() - .split(' ') - .filter(el => !!el) - : []; + let commits = []; + if (args.commit) { + commits = args.commit + .trim() + .split(' ') + .filter(el => !!el); + } else { + // Default to pinned commit if provided, otherwise fail fast + const fseLocal = require('fs-extra'); + const path = require('path'); + const pinnedFromEnv = + process.env.ARIA_AT_PINNED_SHA && + String(process.env.ARIA_AT_PINNED_SHA).trim(); + let pinnedFromFile = null; + const versionPath = path.resolve( + process.cwd(), + 'config', + 'aria-at.version' + ); + if (fseLocal.existsSync(versionPath)) { + pinnedFromFile = String(fseLocal.readFileSync(versionPath)).trim(); + } + + const pinned = pinnedFromEnv || pinnedFromFile; + if (!pinned) { + console.error( + 'No commit specified and no pinned SHA found. Provide -c , set ARIA_AT_PINNED_SHA, or add config/aria-at.version.' + ); + process.exit(1); + } + commits = [pinned]; + } if (commits.length) { for (const [cIndex, commit] of commits.entries()) { From 94a8090d9773d47beb3a9925e470b0f93c485dba Mon Sep 17 00:00:00 2001 From: Stalgia Grigg Date: Wed, 3 Sep 2025 12:13:44 -0700 Subject: [PATCH 02/21] update pinned version --- config/aria-at.version | 2 +- server/scripts/import-tests/index.js | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/config/aria-at.version b/config/aria-at.version index bde7e58c7..0feb9ee09 100644 --- a/config/aria-at.version +++ b/config/aria-at.version @@ -1 +1 @@ -5fe7afd82fe51c185b8661276105190a59d47322 +84bd6c8806b51557ff50c8574533a99810d8a5a8 diff --git a/server/scripts/import-tests/index.js b/server/scripts/import-tests/index.js index 658dccdd6..abaccc72a 100644 --- a/server/scripts/import-tests/index.js +++ b/server/scripts/import-tests/index.js @@ -55,9 +55,8 @@ const importTestPlanVersions = async transaction => { String(process.env.ARIA_AT_PINNED_SHA).trim(); let pinnedFromFile = null; const versionPath = path.resolve( - process.cwd(), - 'config', - 'aria-at.version' + __dirname, + '../../../config/aria-at.version' ); if (fseLocal.existsSync(versionPath)) { pinnedFromFile = String(fseLocal.readFileSync(versionPath)).trim(); From 3c1445a864905aab8dae34236096d997dfc784c4 Mon Sep 17 00:00:00 2001 From: Stalgia Grigg Date: Wed, 3 Sep 2025 12:27:31 -0700 Subject: [PATCH 03/21] Experiment with older commit Ensure that automatic updates happen --- config/aria-at.version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/aria-at.version b/config/aria-at.version index 0feb9ee09..0820d79e5 100644 --- a/config/aria-at.version +++ b/config/aria-at.version @@ -1 +1 @@ -84bd6c8806b51557ff50c8574533a99810d8a5a8 +04a0d469a429d6a573977b86e21c44c308d2fe96 From ef2941bc77fcb36c77753f372ebf49e0d9fb64b1 Mon Sep 17 00:00:00 2001 From: Stalgia Grigg Date: Wed, 3 Sep 2025 14:24:13 -0700 Subject: [PATCH 04/21] ignore snapshots on initial test --- .github/workflows/update-aria-at.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-aria-at.yml b/.github/workflows/update-aria-at.yml index 3139aa384..24804495c 100644 --- a/.github/workflows/update-aria-at.yml +++ b/.github/workflows/update-aria-at.yml @@ -86,7 +86,7 @@ jobs: run: | yarn workspace server db-import-tests:test - - name: Run tests + - name: Run tests (excluding snapshots) if: steps.latest.outputs.latest != steps.latest.outputs.pinned run: | yarn workspace shared prettier @@ -96,7 +96,7 @@ jobs: yarn workspace client lint yarn workspace server lint yarn workspace shared jest - yarn workspace client jest + yarn workspace client jest --testPathIgnorePatterns=snapshots yarn workspace server jest - name: Update pin and snapshots From 866e3a1aff4f009f7e4451b29da8d28a0f7242d0 Mon Sep 17 00:00:00 2001 From: Stalgia Grigg Date: Wed, 3 Sep 2025 14:48:49 -0700 Subject: [PATCH 05/21] Update workflow to better match test workflow --- .github/workflows/update-aria-at.yml | 33 ++++++++++------------------ 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/.github/workflows/update-aria-at.yml b/.github/workflows/update-aria-at.yml index 24804495c..907880209 100644 --- a/.github/workflows/update-aria-at.yml +++ b/.github/workflows/update-aria-at.yml @@ -17,46 +17,38 @@ jobs: contents: write pull-requests: write steps: - - name: Checkout repository + - name: Checkout the repository uses: actions/checkout@v4 - with: - fetch-depth: 0 - ref: development - - name: Install NodeJS 20 uses: actions/setup-node@v4 with: node-version: 20 cache: npm - - - name: Remove pre-bundled postgres + - run: yarn --version + - name: Remove pre-bundled versions of postgres to avoid version clashes run: | sudo DEBIAN_FRONTEND=noninteractive apt-get purge -y postgresql\* sudo apt-get autoremove -y sudo rm -rf /var/lib/postgresql/ sudo rm -rf /etc/postgresql/ - - name: Install PostgreSQL 12 run: | wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' sudo apt-get -y update - sudo apt-get -y install postgresql-12 postgresql-client-12 - - - name: Configure database + sudo apt-get -y install postgresql-12 + sudo apt-get -y install postgresql-client-12 + - name: before_install run: | sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/12/main/postgresql.conf sudo pg_ctlcluster 12 main restart - - - name: Install deps + - name: before_script run: | yarn --frozen-lockfile npx patch-package - - - name: Prepare test database - run: | source config/test.env sudo -u postgres createdb ${PGDATABASE} + echo Created ${PGDATABASE} sudo -u postgres psql -c "CREATE ROLE ${PGUSER} WITH LOGIN PASSWORD '${PGPASSWORD}'" sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE ${PGDATABASE} to ${PGUSER};" yarn sequelize:test db:migrate @@ -73,18 +65,15 @@ jobs: if [ -z "$LATEST" ]; then echo "Failed to resolve latest SHA"; exit 1; fi if [ "$LATEST" = "$PINNED" ]; then echo "Already up to date"; exit 0; fi - - name: Import historical commits - if: steps.latest.outputs.latest != steps.latest.outputs.pinned - run: | - source config/test.env - yarn workspace server db-import-tests:test -c "${IMPORT_ARIA_AT_TESTS_COMMIT_1} ${IMPORT_ARIA_AT_TESTS_COMMIT_2} ${IMPORT_ARIA_AT_TESTS_COMMIT_3} ${IMPORT_ARIA_AT_TESTS_COMMIT_4}" - - name: Import latest upstream commit if: steps.latest.outputs.latest != steps.latest.outputs.pinned env: ARIA_AT_PINNED_SHA: ${{ steps.latest.outputs.latest }} run: | + yarn workspace server db-import-tests:test -c "${IMPORT_ARIA_AT_TESTS_COMMIT_1} ${IMPORT_ARIA_AT_TESTS_COMMIT_2} ${IMPORT_ARIA_AT_TESTS_COMMIT_3} ${IMPORT_ARIA_AT_TESTS_COMMIT_4}" + # Import pinned current commit as well (no args defaults to pinned) yarn workspace server db-import-tests:test + yarn workspace server db-populate-sample-data:test - name: Run tests (excluding snapshots) if: steps.latest.outputs.latest != steps.latest.outputs.pinned From 68c6b0b6360fbcf5f64c349b0eb6139c73920c11 Mon Sep 17 00:00:00 2001 From: Stalgia Grigg Date: Wed, 3 Sep 2025 15:14:18 -0700 Subject: [PATCH 06/21] more explicit commit SHA for latest --- .github/workflows/update-aria-at.yml | 41 +++++++++++++++++++++------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/.github/workflows/update-aria-at.yml b/.github/workflows/update-aria-at.yml index 907880209..373f32a59 100644 --- a/.github/workflows/update-aria-at.yml +++ b/.github/workflows/update-aria-at.yml @@ -54,25 +54,42 @@ jobs: yarn sequelize:test db:migrate yarn sequelize:test db:seed:all - - name: Determine latest upstream SHA + - name: Check for latest upstream SHA id: latest run: | set -e + echo "Checking for latest ARIA-AT upstream SHA..." LATEST=$(git ls-remote https://github.com/w3c/aria-at HEAD | cut -f1) PINNED=$(cat config/aria-at.version || true) echo "latest=$LATEST" >> $GITHUB_OUTPUT echo "pinned=$PINNED" >> $GITHUB_OUTPUT - if [ -z "$LATEST" ]; then echo "Failed to resolve latest SHA"; exit 1; fi - if [ "$LATEST" = "$PINNED" ]; then echo "Already up to date"; exit 0; fi - - name: Import latest upstream commit + if [ -z "$LATEST" ]; then + echo "❌ Failed to resolve latest upstream SHA" + exit 1 + fi + + echo "📋 Current pinned SHA: ${PINNED:-none}" + echo "🔄 Latest upstream SHA: $LATEST" + + if [ "$LATEST" = "$PINNED" ]; then + echo "✅ Already up to date with latest upstream SHA" + exit 0 + else + echo "📦 Found newer upstream SHA, will test and update" + fi + + - name: Import and test latest upstream SHA if: steps.latest.outputs.latest != steps.latest.outputs.pinned - env: - ARIA_AT_PINNED_SHA: ${{ steps.latest.outputs.latest }} run: | + echo "🔧 Importing historical commits for testing..." yarn workspace server db-import-tests:test -c "${IMPORT_ARIA_AT_TESTS_COMMIT_1} ${IMPORT_ARIA_AT_TESTS_COMMIT_2} ${IMPORT_ARIA_AT_TESTS_COMMIT_3} ${IMPORT_ARIA_AT_TESTS_COMMIT_4}" - # Import pinned current commit as well (no args defaults to pinned) - yarn workspace server db-import-tests:test + + echo "📦 Importing latest upstream commit: ${{ steps.latest.outputs.latest }}" + echo "Setting ARIA_AT_PINNED_SHA to: ${{ steps.latest.outputs.latest }}" + ARIA_AT_PINNED_SHA="${{ steps.latest.outputs.latest }}" bash -c 'echo "ARIA_AT_PINNED_SHA is set to: $ARIA_AT_PINNED_SHA" && yarn workspace server db-import-tests:test' + + echo "📊 Populating sample data..." yarn workspace server db-populate-sample-data:test - name: Run tests (excluding snapshots) @@ -88,10 +105,12 @@ jobs: yarn workspace client jest --testPathIgnorePatterns=snapshots yarn workspace server jest - - name: Update pin and snapshots + - name: Update pinned SHA and snapshots (tests passed) if: steps.latest.outputs.latest != steps.latest.outputs.pinned run: | + echo "✅ All tests passed! Updating pinned SHA to latest upstream..." echo "${{ steps.latest.outputs.latest }}" > config/aria-at.version + echo "📸 Updating snapshots..." yarn update-snapshots - name: Stage allowed files only @@ -118,13 +137,15 @@ jobs: esac done - - name: Commit and push to development + - name: Commit updated ARIA-AT pin and snapshots if: steps.latest.outputs.latest != steps.latest.outputs.pinned env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | set -e + echo "📝 Committing updated ARIA-AT pin and snapshots..." git config user.name "github-actions[bot]" git config user.email "41898282+github-actions[bot]@users.noreply.github.com" git commit -m "chore: bump ARIA-AT pin to ${{ steps.latest.outputs.latest }}" + echo "🚀 Pushing to development branch..." git push origin HEAD:development From 0bf05be2064b873287728743935694c94779b4f9 Mon Sep 17 00:00:00 2001 From: Stalgia Grigg Date: Wed, 3 Sep 2025 15:22:35 -0700 Subject: [PATCH 07/21] Use arg for latest commit --- .github/workflows/update-aria-at.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/update-aria-at.yml b/.github/workflows/update-aria-at.yml index 373f32a59..e33165278 100644 --- a/.github/workflows/update-aria-at.yml +++ b/.github/workflows/update-aria-at.yml @@ -86,8 +86,7 @@ jobs: yarn workspace server db-import-tests:test -c "${IMPORT_ARIA_AT_TESTS_COMMIT_1} ${IMPORT_ARIA_AT_TESTS_COMMIT_2} ${IMPORT_ARIA_AT_TESTS_COMMIT_3} ${IMPORT_ARIA_AT_TESTS_COMMIT_4}" echo "📦 Importing latest upstream commit: ${{ steps.latest.outputs.latest }}" - echo "Setting ARIA_AT_PINNED_SHA to: ${{ steps.latest.outputs.latest }}" - ARIA_AT_PINNED_SHA="${{ steps.latest.outputs.latest }}" bash -c 'echo "ARIA_AT_PINNED_SHA is set to: $ARIA_AT_PINNED_SHA" && yarn workspace server db-import-tests:test' + yarn workspace server db-import-tests:test -c "${{ steps.latest.outputs.latest }}" echo "📊 Populating sample data..." yarn workspace server db-populate-sample-data:test From 1a100bc934fce1e8da05fdc06e100b81dc16b78c Mon Sep 17 00:00:00 2001 From: Stalgia Grigg Date: Wed, 3 Sep 2025 15:41:47 -0700 Subject: [PATCH 08/21] Ensure config vars are available --- .github/workflows/update-aria-at.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/update-aria-at.yml b/.github/workflows/update-aria-at.yml index e33165278..0b5e4836f 100644 --- a/.github/workflows/update-aria-at.yml +++ b/.github/workflows/update-aria-at.yml @@ -82,6 +82,8 @@ jobs: - name: Import and test latest upstream SHA if: steps.latest.outputs.latest != steps.latest.outputs.pinned run: | + # Ensure IMPORT_ARIA_AT_TESTS_COMMIT_* env vars are available in this step + source config/test.env echo "🔧 Importing historical commits for testing..." yarn workspace server db-import-tests:test -c "${IMPORT_ARIA_AT_TESTS_COMMIT_1} ${IMPORT_ARIA_AT_TESTS_COMMIT_2} ${IMPORT_ARIA_AT_TESTS_COMMIT_3} ${IMPORT_ARIA_AT_TESTS_COMMIT_4}" From 89db4f2fcf7e146ca500ba8d8af68a4361e3f5c9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 3 Sep 2025 23:02:09 +0000 Subject: [PATCH 09/21] chore: bump ARIA-AT pin to 84bd6c8806b51557ff50c8574533a99810d8a5a8 --- .../snapshots/saved/_account_settings.html | 2 +- .../e2e/snapshots/saved/_data-management.html | 20 +++++++++---------- config/aria-at.version | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/client/tests/e2e/snapshots/saved/_account_settings.html b/client/tests/e2e/snapshots/saved/_account_settings.html index c7f2b2b78..9c38ac140 100644 --- a/client/tests/e2e/snapshots/saved/_account_settings.html +++ b/client/tests/e2e/snapshots/saved/_account_settings.html @@ -98,7 +98,7 @@

Admin Actions

-

Date of latest test plan version: August 25, 2025 18:06 UTC

+

Date of latest test plan version: August 31, 2025 20:57 UTC

diff --git a/client/tests/e2e/snapshots/saved/_data-management.html b/client/tests/e2e/snapshots/saved/_data-management.html index ec901e7e6..039007d78 100644 --- a/client/tests/e2e/snapshots/saved/_data-management.html +++ b/client/tests/e2e/snapshots/saved/_data-management.html @@ -282,9 +282,9 @@

Switch Example Using HTML Button - - - + + +
@@ -1197,7 +1197,7 @@

Test Plans Status Summary

R&D -

Complete Aug 13, 2025

+

Complete Aug 28, 2025

@@ -1897,7 +1897,7 @@

Test Plans Status Summary

V25.08.13V25.08.28
-

Date of latest test plan version: August 31, 2025 20:57 UTC

+

Date of latest test plan version: October 1, 2025 21:37 UTC

diff --git a/client/tests/e2e/snapshots/saved/_data-management.html b/client/tests/e2e/snapshots/saved/_data-management.html index 039007d78..02b95d023 100644 --- a/client/tests/e2e/snapshots/saved/_data-management.html +++ b/client/tests/e2e/snapshots/saved/_data-management.html @@ -2681,7 +2681,7 @@

Test Plans Status Summary

R&D -

Complete Aug 19, 2025

+

Complete Oct 1, 2025

@@ -2702,7 +2702,7 @@

Test Plans Status Summary

V25.08.19V25.10.01
-

Date of latest test plan version: October 1, 2025 21:37 UTC

+

Date of latest test plan version: October 6, 2025 22:33 UTC

diff --git a/client/tests/e2e/snapshots/saved/_data-management.html b/client/tests/e2e/snapshots/saved/_data-management.html index 02b95d023..2cbf77858 100644 --- a/client/tests/e2e/snapshots/saved/_data-management.html +++ b/client/tests/e2e/snapshots/saved/_data-management.html @@ -276,15 +276,20 @@

- + - - - - + + + + +
@@ -384,7 +389,7 @@

Test Plans Status Summary

data-testid="filter-all" aria-pressed="true" class="filter-button btn active btn-secondary"> - All Plans (39) + All Plans (40)
  • @@ -393,7 +398,7 @@

    Test Plans Status Summary

    data-testid="filter-rd" aria-pressed="false" class="filter-button btn btn-secondary"> - R&D Complete (35) + R&D Complete (36)
  • @@ -427,7 +432,7 @@

    Test Plans Status Summary

    @@ -1197,7 +1202,7 @@

    Test Plans Status Summary

    + + + + + + + + + - + - +
    + Switch Example Using HTML Checkbox Input + +
    + JAWS, NVDA and VoiceOver for macOS +
    +
    +
    + R&D +

    Complete Oct 6, 2025

    +
    +
    +
    + V25.10.06 +
    +
    + Not Started + + Not Started + None Yet
    Tabs with Automatic ActivationTest Plans Status Summary None Yet
    Tabs with Manual ActivationTest Plans Status Summary None Yet
    Vertical Temperature SliderTest Plans Status Summary diff --git a/client/tests/e2e/snapshots/saved/_data-management.html b/client/tests/e2e/snapshots/saved/_data-management.html index 2cbf77858..cfb3bc4c6 100644 --- a/client/tests/e2e/snapshots/saved/_data-management.html +++ b/client/tests/e2e/snapshots/saved/_data-management.html @@ -219,22 +219,22 @@

    >Test Plan
    @@ -582,7 +582,7 @@

    Test Plans Status Summary

    -
    Support Levels >
    -
    Support Levels >
    -
    Support Levels >
    -
    Support Levels >
    -
    Support Levels >
    -
    >Test Plan
    R&D -

    Complete Feb 12, 2025

    +

    Complete Oct 27, 2025

    @@ -2493,7 +2493,7 @@

    Test Plans Status Summary

    V25.02.12V25.10.27
    R&D -

    Complete Feb 12, 2025

    +

    Complete Oct 26, 2025

    @@ -2547,7 +2547,7 @@

    Test Plans Status Summary

    V25.02.12V25.10.26 -

    Date of latest test plan version: October 27, 2025 03:13 UTC

    +

    Date of latest test plan version: October 27, 2025 06:36 UTC

    diff --git a/client/tests/e2e/snapshots/saved/_data-management.html b/client/tests/e2e/snapshots/saved/_data-management.html index d20d00bc6..d491c4b45 100644 --- a/client/tests/e2e/snapshots/saved/_data-management.html +++ b/client/tests/e2e/snapshots/saved/_data-management.html @@ -1824,7 +1824,7 @@

    Test Plans Status Summary

    R&D -

    Complete Mar 6, 2025

    +

    Complete Oct 27, 2025

    @@ -1845,7 +1845,7 @@

    Test Plans Status Summary

    V25.03.06V25.10.27 -

    Date of latest test plan version: October 27, 2025 06:36 UTC

    +

    Date of latest test plan version: November 2, 2025 05:45 UTC

    diff --git a/client/tests/e2e/snapshots/saved/_data-management.html b/client/tests/e2e/snapshots/saved/_data-management.html index d491c4b45..d87511cf8 100644 --- a/client/tests/e2e/snapshots/saved/_data-management.html +++ b/client/tests/e2e/snapshots/saved/_data-management.html @@ -1881,7 +1881,7 @@

    Test Plans Status Summary

    R&D -

    Complete Aug 28, 2025

    +

    Complete Nov 2, 2025

    @@ -1902,7 +1902,7 @@

    Test Plans Status Summary

    V25.08.28V25.11.02 -

    Date of latest test plan version: November 2, 2025 05:45 UTC

    +

    Date of latest test plan version: November 2, 2025 18:50 UTC

    diff --git a/client/tests/e2e/snapshots/saved/_data-management.html b/client/tests/e2e/snapshots/saved/_data-management.html index d87511cf8..fbf14e040 100644 --- a/client/tests/e2e/snapshots/saved/_data-management.html +++ b/client/tests/e2e/snapshots/saved/_data-management.html @@ -875,7 +875,7 @@

    Test Plans Status Summary

    V24.04.26V25.11.02 -

    Date of latest test plan version: November 2, 2025 18:50 UTC

    +

    Date of latest test plan version: November 4, 2025 02:14 UTC

    diff --git a/client/tests/e2e/snapshots/saved/_data-management.html b/client/tests/e2e/snapshots/saved/_data-management.html index fbf14e040..71eb70b35 100644 --- a/client/tests/e2e/snapshots/saved/_data-management.html +++ b/client/tests/e2e/snapshots/saved/_data-management.html @@ -219,10 +219,10 @@

    >Test Plan
    @@ -582,7 +582,7 @@

    Test Plans Status Summary

    @@ -1902,7 +1902,7 @@

    Test Plans Status Summary

    V25.11.02V25.11.04
    R&D -

    Complete Dec 13, 2023

    +

    Complete Nov 3, 2025

    -
    Support Levels >
    -
    Support Levels >
    -
    Support Levels >
    -
    Support Levels >
    -
    Support Levels >
    -
    >