Конфигурация
Описание конфигурации Playwright, ESLint и окружений.
playwright.config.ts
Общие настройки
| Параметр | Значение | CI | Описание |
|---|---|---|---|
testDir | ./tests | — | Директория с тестами |
testMatch | **/*.e2e.ts | — | Паттерн файлов |
fullyParallel | true | — | Параллельное выполнение |
retries | 0 | 2 | Повторные попытки |
workers | auto | 1 | Количество воркеров |
reporter | html | — | Репортер |
Проекты
typescript
projects: [
{
name: "setup",
testMatch: /auth\.setup\.ts/
},
{
name: "api",
testMatch: /tests\/api\//,
use: { baseURL: environment.apiBaseUrl }
},
{
name: "client",
testMatch: /tests\/client\//,
dependencies: ["setup"],
use: {
baseURL: environment.clientBaseUrl,
storageState: "playwright/.auth/user.json"
}
}
];Разделение ответственности
- setup — выполняет browser login, сохраняет сессию
- api — HTTP-only тесты, без браузера (
APIRequestContext) - client — browser тесты, зависит от setup (
storageState)
Скрипты
Тестирование
bash
pnpm test # Все тесты (setup → api + client)
pnpm test:api # Только API (--project=api)
pnpm test:client # Только Client (--project=client)
pnpm test:headed # С видимым браузером (--headed)
pnpm test:debug # Playwright Inspector (--debug)
pnpm test:ui # UI-режим Playwright (--ui)
pnpm test:report # HTML-отчет
pnpm test:ci # CI-режим (github + html reporter)Качество кода
bash
pnpm lint # ESLint проверка
pnpm lint:fix # ESLint с автоисправлением
pnpm format # Prettier форматирование
pnpm format:check # Prettier проверка
pnpm typecheck # tsc --noEmitESLint
Flat config (v9) с плагинами:
| Плагин | Назначение |
|---|---|
@typescript-eslint | TypeScript-специфичные правила |
sonarjs | Обнаружение code smells и дубликатов |
unicorn | Лучшие практики JavaScript/TypeScript |
simple-import-sort | Автоматическая сортировка импортов |
unused-imports | Удаление неиспользуемых импортов |
Окружения
Конфигурация хранится в src/environments/environment.ts (gitignored). Генерируется из Doppler:
bash
pnpm generate:env -- local # Локальное окружение
pnpm generate:env -- dev # Dev окружение
pnpm generate:env -- prod # Production окружениеDoppler-проект: saas-e2e с конфигурациями local, dev, prod.
Следующие шаги
- CI/CD — GitHub Actions workflows
- Фикстуры и хелперы — кастомные фикстуры