Au niveau racine de votre dossier de test, installez le package @axe-core/watcher et toutes ses dépendances à l'aide de npm ou de votre gestionnaire de packages préféré (par exemple, Yarn ou pnpm).
npm install --save-dev @axe-core/watcher
Dans votre ou vos fichiers de test, importez la fonction puppeteerConfig , la fonction wrapPuppeteer() et la classe PuppeteerController de @axe-core/watcher :
import {
puppeteerConfig,
wrapPuppeteerPage,
PuppeteerController
} from '@axe-core/watcher'
Mettez à jour votre code de configuration de test (généralement dans un bloc before ou beforeAll ) en enveloppant tout code existant pour créer une instance de navigateur avec un appel à puppeteerConfig(), tout en obtenant votre clé API (en tant que API_KEY) à partir de l'environnement :
// Original code:
browser = await puppeteer.launch({
// Your existing launch options...
})
// Becomes:
const API_KEY = process.env.API_KEY
const browser = await puppeteer.launch(
puppeteerConfig({
axe: {
apiKey: API_KEY
},
headless: false
})
);
Créez une instance de PuppeteerController et encapsulez votre Puppeteer browserContext :
// Create a page instance, using your browser instance.
let page = await browser.newPage()
// Initialize the PuppeteerController by passing in the Puppeteer page.
const controller = new PuppeteerController(page)
// Use the new wrapped Puppeteer page instance.
page = wrapPuppeteerPage(page, controller)
Enfin, assurez-vous que tous les résultats des tests d’axe Watcher sont complètement traités. Pour ce faire, ajoutez le bloc de code suivant à votre code de démontage de test (généralement dans un bloc afterEach) :
afterEach(async () => {
await controller.flush()
});