API тесты
API тесты проверяют все REST-эндпоинты saas-api без использования браузера. Каждый тест выполняет HTTP-запрос через APIRequestContext и валидирует структуру ответа.
Обзор
32 тест-файла покрывают ~140 тест-кейсов. Тесты используют кастомные фикстуры:
auth.fixture.ts— предоставляетauthenticatedRequestс JWT пользователяadmin-auth.fixture.ts— предоставляетadminRequestс JWT администратора
Пример типичного API теста:
typescript
import { expect, test } from "../fixtures/auth.fixture";
test("GET /api/companies — returns paginated list", async ({ authenticatedRequest }) => {
const response = await authenticatedRequest.get("/api/companies");
expect(response.ok()).toBe(true);
const body = await response.json();
expect(body.success).toBe(true);
expect(Array.isArray(body.data)).toBe(true);
});Навигация
Аутентификация и пользователи
| Файл | Тестов | Описание |
|---|---|---|
| auth.e2e.ts | 4 | Sign-in, /me, 401 |
| auth-flows.e2e.ts | 6 | Sign-in, refresh, forgot/reset password, sign-up |
| users.e2e.ts | 3 | Get, update, get by id |
Компании
| Файл | Тестов | Описание |
|---|---|---|
| companies.e2e.ts | 6 | CRUD + /my |
| company-invitations.e2e.ts | 3 | Send, accept, revoke |
| company-access-tokens.e2e.ts | 4 | CRUD |
Ассистенты
| Файл | Тестов | Описание |
|---|---|---|
| assistants.e2e.ts | 6 | CRUD + copy |
| assistant-folders.e2e.ts | 7 | CRUD + folder operations |
| assistant-tools.e2e.ts | 5 | CRUD |
| assistant-knowledge.e2e.ts | 5 | CRUD |
| assistant-phones.e2e.ts | 1 | Phones count |
| assistant-integrations.e2e.ts | 2 | List, get by id |
Чаты и сообщения
| Файл | Тестов | Описание |
|---|---|---|
| chats.e2e.ts | 3 | List, get, update |
| chat-operations.e2e.ts | 3 | AI control, assign/unassign assistant |
| messages.e2e.ts | 3 | List, last, get by id |
Телефония и история
| Файл | Тестов | Описание |
|---|---|---|
| phones.e2e.ts | 5 | CRUD |
| calls-history.e2e.ts | 2 | List, get by id |
| chats-history.e2e.ts | 2 | List, get by id |
Интеграции и справочники
| Файл | Тестов | Описание |
|---|---|---|
| integrations.e2e.ts | 3 | List, get, update |
| models.e2e.ts | 1 | List models |
| voices.e2e.ts | 2 | List, get by id |
Аналитика и биллинг
| Файл | Тестов | Описание |
|---|---|---|
| analytics.e2e.ts | 13 | 13 company analytics endpoints |
| billing.e2e.ts | 4 | Tariffs, payments, coupon, unsubscribe |
| tariffs.e2e.ts | 1 | Public tariffs (no auth) |
Прочее
| Файл | Тестов | Описание |
|---|---|---|
| health.e2e.ts | 2 | Health check, Prometheus metrics |
| files.e2e.ts | 3 | Upload, get, delete |
| support.e2e.ts | 1 | Create request |
| sync.e2e.ts | 2 | Stats, fetch |
Admin
| Файл | Тестов | Описание |
|---|---|---|
| admin.e2e.ts | 15 | Auth + 14 entity list endpoints |
| admin-analytics.e2e.ts | 10 | 10 admin analytics endpoints |
| admin-billing.e2e.ts | 7 | Tariffs, subscriptions, invoices, payments, events, refunds, coupons |
| admin-workflows.e2e.ts | 3 | List, stats, billing lifecycle |
Следующие шаги
- Аутентификация — тесты аутентификации и пользователей
- Компании — тесты CRUD компаний
- Admin тесты — тесты админ-панели