chore: Playwright и axe для браузерного QA веб-парта
Зависимости и навык spfx-qa для проверки портала в браузере (сценарии, снимки, проверка доступности). Каталоги сессии и отчётов (.auth/, .qa-reports/) — в .gitignore. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env node
|
||||
// Запускает ПОЛЬЗОВАТЕЛЬ (не агент). Открывает видимый браузер, вы логинитесь сами
|
||||
// (пароль, MFA), затем нажимаете Enter в терминале — сессия сохраняется в файл.
|
||||
// ВНИМАНИЕ: файл = доступ к вашей учётке M365. Не коммитьте, не пересылайте, удаляйте после тестов.
|
||||
//
|
||||
// node save-session.mjs https://<test-tenant>.sharepoint.com/sites/<qa-site> [.auth/tenant.json]
|
||||
|
||||
import { chromium } from 'playwright';
|
||||
import readline from 'node:readline/promises';
|
||||
import fs from 'node:fs/promises';
|
||||
import path from 'node:path';
|
||||
|
||||
const [url, file = '.auth/tenant.json'] = process.argv.slice(2);
|
||||
if (!url) { console.error('Укажите URL тестового сайта'); process.exit(2); }
|
||||
|
||||
const browser = await chromium.launch({ headless: false });
|
||||
const context = await browser.newContext();
|
||||
await (await context.newPage()).goto(url);
|
||||
|
||||
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
||||
await rl.question('Залогиньтесь в открытом окне, дождитесь загрузки сайта и нажмите Enter… ');
|
||||
rl.close();
|
||||
|
||||
await fs.mkdir(path.dirname(file), { recursive: true });
|
||||
await context.storageState({ path: file });
|
||||
await browser.close();
|
||||
console.log(`Сессия сохранена в ${file}. Проверьте, что путь есть в .gitignore.`);
|
||||
Reference in New Issue
Block a user