From 67b91d96244311da1d3ef834f609e5e633ed6298 Mon Sep 17 00:00:00 2001 From: Aarish <118203269+ImprobableGenius@users.noreply.github.com> Date: Thu, 22 May 2025 22:51:11 -0500 Subject: [PATCH] Build a service class to handle Playwright Testing --- services/PlaywrightService.js | 52 +++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 services/PlaywrightService.js diff --git a/services/PlaywrightService.js b/services/PlaywrightService.js new file mode 100644 index 0000000..09d8cb6 --- /dev/null +++ b/services/PlaywrightService.js @@ -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; \ No newline at end of file