Skip to content

Быстрый старт

Эта страница поможет быстро начать работу с E2E тестами.

Требования

Перед началом работы убедитесь, что у вас установлены:

  • Node.js 22 или выше
  • pnpm 10 или выше
  • Doppler CLI (для генерации окружения)
bash
node --version   # должен быть >= 22
pnpm --version   # должен быть >= 10
doppler --version

Установка

1. Клонирование репозитория

bash
git clone <repository-url>
cd saas-e2e

2. Установка зависимостей

bash
pnpm install

Важно

Проект использует pnpm как единственный пакетный менеджер. Использование npm или yarn заблокировано через preinstall hook.

3. Генерация переменных окружения

Проект использует Doppler для управления секретами. Сгенерируйте environment файлы:

bash
pnpm generate:env -- local   # Для локального окружения
pnpm generate:env -- dev     # Для dev окружения
pnpm generate:env -- prod    # Для production окружения

Важно

Этот шаг обязателен перед первым запуском. Без генерации environment.ts тесты не запустятся.

Необходимые секреты в Doppler:

СекретОписание
API_BASE_URLURL API сервера (например, http://localhost:3000)
CLIENT_BASE_URLURL клиентского приложения (например, http://localhost:4200)
TEST_USER_EMAILEmail тестового пользователя
TEST_USER_PASSWORDПароль тестового пользователя
ADMIN_USER_EMAILEmail администратора
ADMIN_USER_PASSWORDПароль администратора

4. Установка Playwright браузеров

bash
pnpm exec playwright install chromium

5. Запуск тестов

bash
pnpm test

Быстрый старт (все команды)

bash
git clone <repository-url>
cd saas-e2e
pnpm install
pnpm generate:env -- local
pnpm exec playwright install chromium
pnpm test

Основные команды

Тестирование

bash
pnpm test              # Все тесты
pnpm test:api          # Только API тесты (без браузера)
pnpm test:client       # Только Client тесты (браузер)
pnpm test:headed       # С видимым браузером
pnpm test:debug        # Debug-режим (Playwright Inspector)
pnpm test:ui           # UI-режим Playwright
pnpm test:report       # Открыть HTML-отчет

Качество кода

bash
pnpm lint              # ESLint проверка
pnpm lint:fix          # ESLint с автоисправлением
pnpm format            # Prettier форматирование
pnpm format:check      # Prettier проверка
pnpm typecheck         # TypeScript проверка (tsc --noEmit)

Документация

bash
pnpm docs:dev          # Dev-сервер документации
pnpm docs:build        # Сборка документации
pnpm docs:preview      # Превью сборки

Структура проекта

saas-e2e/
├── tests/
│   ├── setup/            # Auth setup (browser login, storageState)
│   ├── fixtures/         # Кастомные Playwright фикстуры
│   ├── helpers/          # Утилиты для валидации ответов API
│   ├── api/              # API тесты (32 файла, без браузера)
│   └── client/           # Browser тесты (14 файлов)
├── src/
│   └── environments/     # Конфигурация окружений (gitignored)
├── scripts/              # Утилитарные скрипты
├── docs/                 # Документация (VitePress)
├── playwright.config.ts  # Конфигурация Playwright
├── eslint.config.mjs     # ESLint flat config
├── tsconfig.json         # TypeScript конфигурация
└── package.json          # Dependencies и скрипты

Что дальше?

SaaS E2E Test Documentation