Skip to content

feat(matcher): add per-test filtering via testsFilter and SA11Y_AUTO_FILTER_TESTS#984

Open
jethrolarson wants to merge 2 commits into
salesforce:masterfrom
jethrolarson:feat/per-test-filter
Open

feat(matcher): add per-test filtering via testsFilter and SA11Y_AUTO_FILTER_TESTS#984
jethrolarson wants to merge 2 commits into
salesforce:masterfrom
jethrolarson:feat/per-test-filter

Conversation

@jethrolarson

@jethrolarson jethrolarson commented Jun 11, 2026

Copy link
Copy Markdown

Human Note: Really I'd prefer to be able to disable sa11y for a specific test in-line but there was a TODO to implement it this way so claude and I took that path. 🙏

Summary

Implements the long-standing TODO in AutoCheckOpts for per-test exclusion from automatic accessibility checks:

// TODO (feat): add support for optional exclusion of selected tests
// excludeTests?: string[];
  • Adds testsFilter?: string[] to AutoCheckOpts — array of test name substrings; matched case-insensitively, same as filesFilter
  • Adds skipTestByName() exported utility, mirroring the existing skipTest() for file paths
  • Adds SA11Y_AUTO_FILTER_TESTS env var so pipeline-level configs can exclude specific tests without code changes
  • updateAutoCheckOpts reads the env var and merges into testsFilter

Motivation

When runAfterEach is enabled at the pipeline level across many teams, there is currently no way to exempt a single test without either skipping the entire test or filtering the whole file. This fills that gap.

Usage

Programmatic:

setup({
  autoCheckOpts: {
    runAfterEach: true,
    testsFilter: ['my test that has a known violation'],
  }
});

Via env var (pipeline/CI):

SA11Y_AUTO_FILTER_TESTS="my test that has a known violation,another test name" jest

Test plan

  • New skipTestByName unit tests (parametrized, 7 cases) pass
  • New integration tests for testsFilter in runAutomaticCheck pass
  • Existing defaultAutoCheckOpts snapshot updated to include testsFilter: []
  • All 42 tests in automaticMatcher.test.ts pass

🤖 Generated with Claude Code

@jethrolarson jethrolarson requested a review from a team as a code owner June 11, 2026 06:17
@salesforce-cla

Copy link
Copy Markdown

Thanks for the contribution! Unfortunately we can't verify the commit author(s): Jethro Larson <j***@s***.com>. One possible solution is to add that email to your GitHub account. Alternatively you can change your commits to another email and force push the change. After getting your commits associated with your GitHub account, refresh the status of this Pull Request.

…FILTER_TESTS

Implements the long-standing TODO for per-test exclusion from automatic
accessibility checks. Adds:
- `testsFilter` field to `AutoCheckOpts` — array of test name substrings
- `skipTestByName()` exported utility, mirroring `skipTest()` for files
- `SA11Y_AUTO_FILTER_TESTS` env var for pipeline-level test name exclusions
- `updateAutoCheckOpts` reads the env var and merges into `testsFilter`

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jethrolarson jethrolarson force-pushed the feat/per-test-filter branch from 2f2648d to e0aeaf2 Compare June 11, 2026 06:21
@salesforce-cla

Copy link
Copy Markdown

Thanks for the contribution! Before we can merge this, we need @jethrolarson to sign the Salesforce Inc. Contributor License Agreement.

@jethrolarson

Copy link
Copy Markdown
Author

please merge or ask for changes 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants