UNPKG

@axe-core/cli

Version:

A CLI for accessibility testing using axe-core

89 lines 3.96 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const webdriverjs_1 = __importDefault(require("@axe-core/webdriverjs")); const testPages = (urls, config, events) => __awaiter(void 0, void 0, void 0, function* () { const driver = yield config.driver; if (urls.length === 0) { yield driver.quit(); return Promise.resolve([]); } return new Promise((resolve, reject) => { const currentUrl = urls[0].replace(/[,;]$/, ''); if (events === null || events === void 0 ? void 0 : events.onTestStart) { events.onTestStart(currentUrl); } if (config.timer) { events === null || events === void 0 ? void 0 : events.startTimer('axe page load time'); } driver .get(currentUrl) .then(() => { if (config.timer) { events === null || events === void 0 ? void 0 : events.endTimer('axe page load time'); } if (config.loadDelay) { events === null || events === void 0 ? void 0 : events.waitingMessage(config.loadDelay); } return new Promise(resolve => { setTimeout(resolve, config.loadDelay); }); }) .then(() => { const axe = new webdriverjs_1.default(driver, config.axeSource); if (Array.isArray(config.include)) { config.include.forEach((include) => axe.include(include)); } if (Array.isArray(config.exclude)) { config.exclude.forEach((exclude) => axe.exclude(exclude)); } if (config.tags) { axe.withTags(config.tags); } else if (config.rules) { axe.withRules(config.rules); } /* istanbul ignore if */ if (config.disable) { axe.disableRules(config.disable); } if (config.timer) { events === null || events === void 0 ? void 0 : events.startTimer('axe-core execution time'); } axe.analyze((err, results) => { if (config.timer) { events === null || events === void 0 ? void 0 : events.endTimer('axe-core execution time'); } /* istanbul ignore if */ if (err) { return reject(err); } // Notify about the update if (events === null || events === void 0 ? void 0 : events.onTestComplete) { events === null || events === void 0 ? void 0 : events.onTestComplete(results); } // Move to the next item testPages(urls.slice(1), config, events).then((out) => { resolve([results].concat(out)); }); }); }) .catch((e) => __awaiter(void 0, void 0, void 0, function* () { yield driver.quit(); reject(e); })); }); }); exports.default = testPages; //# sourceMappingURL=axe-test-urls.js.map