Run axe a11y tests in your bun project
bun add bun-axe
Note: Bun currently does not support
extend.expect
, so this API will be changed once it's supported. This example code is based on this workaround.
import { describe, it, expect } from 'bun:test'
import { axe, toHaveNoViolationsFn } from 'bun-axe'
describe("Test", () => {
it("should pass a11y test", async () => {
document.body.innerHTML = `<button>My button</button>`;
const button = document.querySelector('button');
expect(toHaveNoViolationsFn(await axe(button)).pass).toBe(true);
});
})
If you run into an a11y violation, console.log(toHaveNoViolationsFn(await axe(button)).actual)
can be used to see the violations. Until bun supports extend.expect
there is no other great way to get this currently.
Once bun supports extend.expect
you can swap toHaveNoViolationsFn
for toHaveNoViolations
and test like this:
import { describe, it, expect } from 'bun:test'
import { axe, toHaveNoViolationsFn } from 'bun-axe'
describe("Test", () => {
it("should pass a11y test", async () => {
document.body.innerHTML = `<button>My button</button>`;
const button = document.querySelector('button');
expect(await axe(button)).toHaveNoViolations()
});
})