mirror of
https://github.com/kamask-dev/pchelpmaster.git
synced 2026-11-11 05:49:38 +00:00
2.5 KiB
2.5 KiB
Стенд e2e
Сценарии в браузере (Playwright) и проверка доступности (axe) на ng serve с тестовым PocketBase. Общие правила и устройство тестового PocketBase — в testing.md.
pnpm e2e = pnpm test:lint && playwright test. Перед первым запуском: pnpm exec playwright install chromium.
playwright.config.ts: тестыtests/e2e/**/*.e2e.ts, один проектchromium, при падении — скриншот и трейс вtest-results/(в.gitignore).- Два
webServer: тестовый PocketBase (node tests/support/serve-test-pocketbase.ts 8190— тот жеstartPocketBase(), только с фиксированным портом) иng serve --port 4300сPB_URLтестового PocketBase: на него смотрят и SSR, и dev-прокси/pb. Адреса и порты —tests/e2e/urls.ts; они не пересекаются сpnpm pb:serve(8090) иpnpm start(4200), аpb_dataразработчика не используется. - Серверы останавливаются по
SIGTERM(gracefulShutdown): по умолчанию Playwright шлётSIGKILL, и стенд не успел бы удалить временную папку PocketBase. - Без
CIуже запущенные серверы переиспользуются, повторов нет; приCI=trueсерверы всегда свои, повтор упавшего теста один. Это проверяетtests/lint/playwright-config.spec.ts(см. config-tests.md). - Фикстуры (
tests/e2e/fixtures.ts) не зависят от UI входа и суперпользователя (при переиспользовании PocketBase его пароль неизвестен):userрегистрируется через открытую регистрациюusers,api— SDK, вошедший какuser,signedInPage— страница в отдельном контексте браузера с cookiepb_authв форматеexportToCookie, поэтому обычнаяpageостаётся гостевой. expectNoA11yViolations(page)(tests/e2e/a11y.ts): axe со всеми правилами (WCAG и best-practice, как требует CLAUDE.md), падает со спискомправило: описание (элементов: N).