Skip to content

Latest commit

 

History

History
47 lines (33 loc) · 1.36 KB

README.md

File metadata and controls

47 lines (33 loc) · 1.36 KB

bun-axe

Run axe a11y tests in your bun project

Install

bun add bun-axe

Usage

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.

Future

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()
  });
})