@casoon/auditmysite
Version:
A comprehensive command-line tool for automated accessibility, security, performance, and SEO testing using Playwright and pa11y, based on sitemap URLs
56 lines (48 loc) • 1.2 kB
text/typescript
import { Page } from 'playwright';
export interface TestResult {
passed: boolean;
count: number;
errors: string[];
warnings: string[];
details?: Record<string, any>;
}
export interface TestContext {
page: Page;
url: string;
options: any;
}
export abstract class BaseAccessibilityTest {
abstract name: string;
abstract description: string;
abstract category: string;
abstract priority: string;
abstract standards: string[]; // WCAG 2.1, WCAG 2.2, Section 508, etc.
abstract run(context: TestContext): Promise<TestResult>;
protected async evaluateOnPage<T>(
page: Page,
evaluationFn: () => T
): Promise<T> {
return await page.evaluate(evaluationFn);
}
protected createResult(
passed: boolean,
count: number = 0,
errors: string[] = [],
warnings: string[] = [],
details?: Record<string, any>
): TestResult {
return {
passed,
count,
errors,
warnings,
details
};
}
protected createErrorResult(error: string): TestResult {
return this.createResult(false, 0, [error]);
}
protected createSuccessResult(count: number = 0): TestResult {
return this.createResult(true, count);
}
}