BRD Widget 8.4 Автотесты
Направление работ: Widget Код раздела: 8.4 Раздел: Общие работы > Автотесты Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 12.08.26
1. Назначение
Раздел описывает автоматизированные тесты виджета: e2e-тесты ключевых пользовательских сценариев, тесты API с проверкой соответствия ответов интерфейсу и их запуск в CI.
Тесты живут в отдельном репозитории автотестов виджета, который заведён в GitLab и имеет собственный CI.
2. Ключевые понятия
Unit-тест — тест отдельной функции, утилиты или стора.
Тест API — тест, который проверяет ответ метода бэкенда и то, что виджет отображает клиенту пришедшие в ответе значения.
E2E-тест — тест сквозного пользовательского сценария в собранном виджете.
CI — автоматический запуск тестов при сборке и перед деплоем.
3. Scope
Входит
S2: E2E-тесты ключевых сценариев
S2: Тесты API и соответствие ответов интерфейсу
S3: Запуск тестов в CI
Не входит
- S1: Unit-тесты утилит и сторов — отдельной целью не ставится, решение от 12.08.26, см. OQ8.4-1
4. BR
Раздел технический; определяется требованиями качества и надёжности виджета.
5. Функциональные требования (UC + FR)
FR — functional requirements, что должно обеспечиваться автотестами по определенному UC.
| ID | Сценарий | Функциональное требование | BR | Вес | Статус |
|---|---|---|---|---|---|
| S1: #FR8.4-1 | Разработчик меняет утилиту или стор | Ключевые утилиты и сторы виджета покрыты unit-тестами. | 3 | Вне скоупа — отдельной целью не ставится, см. OQ8.4-1 | |
| S2: #FR8.4-4 | Ответ API проверяется на соответствие интерфейсу | Тесты API проверяют не только успешность ответа метода, но и то, что виджет отображает клиенту значения, пришедшие в ответе: применённая тема, состав промокодов, итоговая стоимость, данные клиента. | 1 | Не реализовано | |
| S2: #FR8.4-2 | Проверка сквозного сценария | Ключевые пользовательские сценарии (сбор заказа, вход, создание заказа) покрыты e2e-тестами. | 3 | Частично — сьюты auth, booking-flow, widget-settings есть, целевой объём покрытия не подтверждён, см. OQ8.4-1 | |
| S3: #FR8.4-3 | Сборка перед деплоем | Тесты запускаются автоматически в CI перед деплоем. | 3 | Реализовано — CI настроен в репозитории автотестов виджета |
6. Открытые вопросы
| ID | Источник | Вопрос | Кому | Статус |
|---|---|---|---|---|
| #OQ8.4-1 | Код | Уточнено 11.08.26. Ранее в разделе было записано, что автотестов нет и запуска в CI нет — это неверно. Фактически e2e-тесты живут в отдельном репозитории автотестов виджета: Playwright, сьюты auth, booking-flow, widget-settings; репозиторий заведён в GitLab и имеет собственный CI. Не покрыто ядро виджета: в widget-v3 остаётся единственный тривиальный unit-тест shared/lib/types/pascal-case-keys.test.ts. Решение по объёму: целевое покрытие — e2e плюс тесты API с проверкой соответствия ответов интерфейсу. То есть недостаточно проверять, что метод отвечает: тест сверяет, что виджет показывает клиенту именно то, что пришло в ответе. Такие проверки ловят как раз тот класс расхождений, который всплыл при этой сверке — значения темы, разъехавшиеся с контрактом, и подставные идентификаторы вместо реальных. Unit-тесты на сторы отдельной целью не ставятся. Требования зафиксированы в FR8.4-1…FR8.4-4. | Разработка | Закрыт |