Автоматичне тестування

Оновлено 23 лютого 2026 р.

Адмін-панель містить повний набір автоматичних тестів, що перевіряють бізнес-логіку, API-інтеграції та UI-компоненти.

Огляд

МетрикаЗначення
Загальна кількість тестів564
Тестових файлів42
Test runnerVitest
Мокінг APIMSW (Mock Service Worker)
Тестування компонентівReact Testing Library

Запуск тестів

Усі команди виконуються всередині Docker-контейнера.

КомандаОпис
docker exec booking_admin_dev npx vitest runЗапустити всі тести один раз
docker exec booking_admin_dev npx vitestЗапустити в режимі watch
docker exec booking_admin_dev npm run test:coverageЗапустити зі звітом покриття

Що тестується

Логіка сутностей (10 файлів, ~190 тестів)

Статус-бейджі, функції форматування, кольорові маппінги та константи для всіх доменних сутностей: бронювання, персонал, послуги, клієнти, підписки, абонементи, платежі, медіа, цифрові продукти та розклад.

Утиліти (4 файли, ~54 тести)

Форматування дати/часу, конвертація часових зон, URL-хелпери та форматування валют з мультивалютною підтримкою.

API-хуки (20 файлів, ~260 тестів)

Усі React Query хуки для отримання та зміни даних: list-запити, detail-запити, create/update/delete мутації та інвалідація кешу для кожного модуля.

UI-компоненти (9 файлів, ~39 тестів)

Компоненти статус-бейджів для всіх сутностей (правильні кольори, підписи та стилі) та прогрес-бари використання.

Переклади (1 файл, 5 тестів)

Перевірка консистентності — усі три файли локалізації (EN, UK, PL) мають однакові ключі перекладів.

Додавання нових тестів

При додаванні нової функціональності дотримуйтесь цього порядку:

  1. Створіть тестовий файл поруч із вихідним файлом (наприклад, useBookings.test.ts)
  2. Додайте MSW-хендлери в src/test/handlers.ts для нових API-ендпоінтів
  3. Додайте фабричні функції в src/test/factories.ts для нових типів сутностей
  4. Запустіть конкретний тест: docker exec booking_admin_dev npx vitest run path/to/file.test.ts

Порада: Запускайте повний набір тестів перед комітом, щоб виявити регресії: docker exec booking_admin_dev npx vitest run

Що далі?