sa11y

@sa11y/test-utils

Private package providing test utilities, mock data, and common testing patterns for @sa11y packages.

Usage

Basic Setup

import { beforeEachSetup, domWithA11yIssues, domWithNoA11yIssues } from '@sa11y/test-utils';
import { registerSa11yMatcher } from '@sa11y/jest';

beforeAll(() => {
    registerSa11yMatcher();
});

beforeEach(() => {
    beforeEachSetup();
});

describe('...', () => {
    it('...', async () => {
        document.body.innerHTML = domWithNoA11yIssues;
        await expect(document).toBeAccessible();

        document.body.innerHTML = domWithA11yIssues;
        await expect(document).not.toBeAccessible();
    });
});

DOM Fixtures

The package provides pre-built DOM fixtures for testing:

import {
    domWithA11yIssues,
    domWithNoA11yIssues,
    htmlFileWithA11yIssues,
    htmlFileWithNoA11yIssues,
} from '@sa11y/test-utils';

// DOM strings with known accessibility issues
document.body.innerHTML = domWithA11yIssues;

// DOM strings with no accessibility issues
document.body.innerHTML = domWithNoA11yIssues;

// HTML file paths for testing with browser environments
await browser.url(htmlFileWithA11yIssues);

WebdriverIO Utilities

For WebdriverIO integration testing:

import { beforeEachSetupWdio, cartesianProduct, audioURL, videoURL } from '@sa11y/test-utils';

describe('WDIO tests', () => {
    beforeEach(() => {
        beforeEachSetupWdio();
    });

    // Use media URLs for testing audio/video accessibility
    // Use cartesianProduct for generating test combinations
});

Test Data

The package includes various test data and utilities: