781512399b
Build & Deploy / Build & Push Docker Image (push) Successful in 2m51s
Test / Type Check (all packages) (push) Successful in 52s
Build & Deploy / Deploy to VPS (push) Successful in 4s
Test / API Unit Tests (push) Successful in 49s
Test / Homepage Unit Tests (push) Successful in 44s
Test / Storefront Unit Tests (push) Successful in 39s
Test / Admin Unit Tests (push) Successful in 40s
Test / Dashboard Unit Tests (push) Successful in 40s
Test / API Integration Tests (push) Successful in 1m0s
25 lines
915 B
TypeScript
25 lines
915 B
TypeScript
import AxeBuilder from '@axe-core/playwright';
|
|
import { expect, test } from '@playwright/test';
|
|
|
|
for (const locale of ['en', 'fr', 'ar'] as const) {
|
|
test(`${locale} homepage has no detectable WCAG A/AA violations`, async ({ page }) => {
|
|
await page.goto(`/${locale}/system`);
|
|
const results = await new AxeBuilder({ page })
|
|
.withTags(['wcag2a', 'wcag2aa', 'wcag21aa', 'wcag22aa'])
|
|
.analyze();
|
|
expect(results.violations).toEqual([]);
|
|
});
|
|
}
|
|
|
|
test('homepage keeps a coherent heading outline', async ({ page }) => {
|
|
await page.goto('/en/system');
|
|
const levels = await page
|
|
.locator('main h1, main h2, main h3')
|
|
.evaluateAll((headings) => headings.map((heading) => Number(heading.tagName.slice(1))));
|
|
|
|
expect(levels[0]).toBe(1);
|
|
for (let index = 1; index < levels.length; index += 1) {
|
|
expect((levels[index] ?? 1) - (levels[index - 1] ?? 1)).toBeLessThanOrEqual(1);
|
|
}
|
|
});
|