Build a service class to handle Playwright Testing
This commit is contained in:
52
services/PlaywrightService.js
Normal file
52
services/PlaywrightService.js
Normal file
@@ -0,0 +1,52 @@
|
||||
// import playwright dependencies
|
||||
const { test, expect } = require('../helpers/axe-test.js');
|
||||
const { chromium } = require('playwright');
|
||||
const { injectAxe, checkA11y } = require('axe-playwright');
|
||||
|
||||
|
||||
|
||||
class PlaywrightService {
|
||||
|
||||
#domain; // domain of the site to be tested
|
||||
#allyTest; // ally test object
|
||||
#url;
|
||||
|
||||
|
||||
// constructor
|
||||
constructor(domain) {
|
||||
this.#domain = domain;
|
||||
this.#url = `https://${domain}`;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
async runAccessibilityTest() {
|
||||
|
||||
const browser = await chromium.launch();
|
||||
const page = await browser.newPage();
|
||||
|
||||
try {
|
||||
await page.goto(this.#url);
|
||||
await injectAxe(page);
|
||||
const results = await page.evaluate(async () => {
|
||||
return await window.axe.run();
|
||||
});
|
||||
|
||||
return results.violations;
|
||||
} finally {
|
||||
await browser.close();
|
||||
}
|
||||
|
||||
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
module.exports = PlaywrightService;
|
||||
Reference in New Issue
Block a user