Сценарий промо кода

Необходимо на странице /liability-insurance добавить текстовое поле "Промокод"

Предусловия: Все поля на странице страхования гражданской ответственности пилотов (/liability-insurance) заполнены кроме поля промо код.

Сценарий:

1. Пользователь вводит промо код

2. Фронт через 3 секунды после введенной строки обращается к серверу сверяя промо код

3. Сервер возвращает 200 OK с коэффициентом скидки

4. Фронт пересчитывает сумму умножая на коэффициент

5. Пользователь нажимает кнопку оформить полис

6. Фронт отправляет запрос на сервер с добавлением поля promocode (string) в корне модели

7. Сервер сверяет промо код

8. Сервер возвращает ссылку на оплату

9. Фронт перенаправляет пользователя на страницу оплаты

Альтернативные сценарии:

1а. Пользователь не ввел промокод:

  1. Фронт умножает сумму на 1
  2. Сценарий продолжается с шага 6 без поля promocode

2а, 8а. Нет ответа от сервера

  1. Пользователю выводится ошибка.
  2. Сценарий прекращается

3а. Промокод недействительный

  1. Сервер возвращает 400 с текстом о невалидном промо коде