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..64e3f0f62 --- /dev/null +++ b/.github/workflows/update-aria-at.yml @@ -0,0 +1,152 @@ +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 the repository + uses: actions/checkout@v4 + - name: Install NodeJS 20 + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + - 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 + 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: before_script + run: | + yarn --frozen-lockfile + npx patch-package + 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 + yarn sequelize:test db:seed:all + + - 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 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 + 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}" + + echo "Importing latest upstream commit: ${{ steps.latest.outputs.latest }}" + yarn workspace server db-import-tests:test -c "${{ steps.latest.outputs.latest }}" + + echo "Populating sample data..." + yarn workspace server db-populate-sample-data:test + + - name: Run tests (excluding snapshots) + 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 --testPathIgnorePatterns=snapshots + yarn workspace server jest + + - 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 + 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 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 diff --git a/client/tests/e2e/snapshots/saved/_account_settings.html b/client/tests/e2e/snapshots/saved/_account_settings.html index 9c38ac140..e901c65d3 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 31, 2025 20:57 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 039007d78..71eb70b35 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
@@ -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

    @@ -543,7 +548,7 @@

    Test Plans Status Summary

    V25.02.13V25.10.26Review Completed Sep 22, 2024Test Plans Status SummaryV25.02.13V25.10.26Review Completed Sep 23, 2024Test Plans Status Summary + + + + + + + + + - + - +
    R&D -

    Complete Mar 6, 2025

    +

    Complete Oct 27, 2025

    R&D -

    Complete Aug 28, 2025

    +

    Complete Nov 4, 2025

    R&D -

    Complete Dec 13, 2023

    +

    Complete Nov 3, 2025

    R&D -

    Complete Feb 12, 2025

    +

    Complete Oct 26, 2025

    R&D -

    Complete Aug 25, 2025

    +

    Complete Oct 1, 2025

    None Yet
    + 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
    R&D -

    Complete Aug 31, 2025

    +

    Complete Oct 20, 2025

    None Yet
    Vertical Temperature SliderTest Plans Status Summary -
    Support Levels >
    -
    Support Levels >
    -
    Support Levels >
    -
    Support Levels >
    -
    Support Levels >
    -
    >Test Plan