Мы продолжаем публиковать видеозаписи докладов с прошедшей онлайн-конференции для тестировщиков КоТэ.
На мастер-классе Алексей Баранцев показал как строить локаторы и рассказал о конкретных приемах и правилах, которыми он руководствуется при построении локаторов, чтобы они получались хорошими.
Детали задачи: Заходим в корзину и применяем промо-код оформляем заказ после оформления заказа промо-код остается висеть в корзине, а должен пропасть так же промо-код должен удалиться если уйти с сайта
Уточнение по задаче от программиста: 1) После оформления заказа промокод должен убираться.
2) В случае с "если уйти с сайта" - тут на мой взгляд оптимальное решение (без сервис воркеров, кастомизации стандартного компонента, агентов и проверки на каждом хите) такое:
В сессию, когда пользователем применяется купон, записываем когда должен купон стать просроченным. Сейчас это через 2 часа после установки (отдельно в настройки админки пока не выносил).
На каждом хите корзины /basket/ проверяем не просрочен ли текущий купон и перед инициализацией корзины успеваем убрать этот купон.
Это позволяет:
"Понять" когда пользователь ушел и удалить просроченный купон. При том не убирать его неявно, например во время процессинга заказа /order/ или обновление корзины, а только при новом посещении корзины /basket/.
Из минусов:
Возможен кейс, когда пользователь в 13:00 использовал COUPON1 и в 14:59 еще раз использовал его. Тогда в 15:00 при повторном заходе в корзину купон слетит. Но такой проблемы не будет если был совершен заказ или был разлогинивание пользователя.
Текущая реализация, связанная с промо-кодом (проверять не надо!): 1)промокод можно ввести без авторизации, сумма пересчитывается, но для оформления заказа необходима авторизация/регистрация. после авторизации/регистрации введенный промод без авторизации в текущей сессии сохраняется, т.е. сумма указана уже со скидкой по промокоду 2) промокод нельзя удалить, но можно заменить другим, если он валиден пример: ввели промокод test, получили скидку, ввели другой промокод: а) промокод валиден - обнулился test, посчиталась скидка по новому промокоду b) промокод невалиден - осталась скидка по промокоду test
ЗАДАЧА: расписать, что вы будете проверять в рамках данной задачи (задача описана в блоках Детали задачи и Уточнение по задаче от программиста) пример: зайду в корзину, перезагружу ее, проверю промокод ВАЖНО: оформлять заказы на проде нельзя, если вы видели его урл