Skip to content

Конфигурация

Описание конфигурации Playwright, ESLint и окружений.

playwright.config.ts

Общие настройки

ПараметрЗначениеCIОписание
testDir./testsДиректория с тестами
testMatch**/*.e2e.tsПаттерн файлов
fullyParalleltrueПараллельное выполнение
retries02Повторные попытки
workersauto1Количество воркеров
reporterhtmlРепортер

Проекты

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 --noEmit

ESLint

Flat config (v9) с плагинами:

ПлагинНазначение
@typescript-eslintTypeScript-специфичные правила
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.

Следующие шаги

SaaS E2E Test Documentation