Skip to content

Биллинг

Тесты тарифов, платежей и управления подписками. Биллинг в saas-api построен на Temporal workflows с полным жизненным циклом подписки (trial → active → renewal → dunning → cancellation).

Обзор

ФайлТестовОписание
tariffs.e2e.ts1Публичный эндпоинт тарифов (без auth)
billing.e2e.ts4Платежи, купоны, отписка

tariffs.e2e.ts (Public)

Эндпоинт /api/tariffs доступен без аутентификации — используется на landing page и в клиентском приложении.

Покрытие:

  • ✅ Список тарифов без JWT (GET /api/tariffs)
typescript
import { expect, test } from "@playwright/test";
import { environment } from "../../src/environments/environment";

test("GET /api/tariffs — returns tariffs list without auth", async ({ request }) => {
	const response = await request.get(`${environment.apiBaseUrl}/api/tariffs`);

	expect(response.ok()).toBe(true);
	const body = await response.json();
	expect(body.success).toBe(true);
	expect(Array.isArray(body.data)).toBe(true);
});

Публичный эндпоинт

В отличие от остальных API тестов, tariffs.e2e.ts импортирует test из @playwright/test напрямую, а не из кастомной фикстуры, так как не требует аутентификации.

billing.e2e.ts

Операции биллинга для аутентифицированного пользователя.

Покрытие:

  • ✅ Список тарифов (GET /api/tariffs)
  • ✅ Список платежей пользователя (GET /api/payments)
  • ❌ Валидация невалидного купона → ошибка (POST /api/billing/validate-coupon)
  • ✅ Обработка запроса на отписку (POST /api/billing/unsubscribe)

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

SaaS E2E Test Documentation