Files
Promocode-API/tests/test_06_business_promo_id_invalid.tavern.yml
T
2025-01-29 20:24:05 +03:00

261 lines
8.1 KiB
YAML

test_name: Корректное получение и изменение промокода по ID
# Подключение файлов из директории components для переиспользования в тестах
includes:
- !include components/basic_auth.yml
# Данный тест должен запускаться после test_06_business_promo_id_valid.tavern.yml
stages:
- type: ref
id: basic_auth_auth1
- type: ref
id: basic_auth_auth2
- name: "Успешное создание промокода [компания 1]"
request:
url: "{BASE_URL}/business/promo"
method: POST
headers:
Authorization: "Bearer {company1_token}"
json:
description: "Аааавтомобиль в подарок"
target: {}
max_count: 10
mode: "COMMON"
promo_common: "sale-10"
response:
status_code: 201
save:
json:
company1_promo1_id: id
- name: "Успешное создание промокода [компания 2]"
request:
url: "{BASE_URL}/business/promo"
method: POST
headers:
Authorization: "Bearer {company2_token}"
json:
description: "Бесплатный скин на пуджа при регистрации по промокоду!"
target: {}
max_count: 1
mode: UNIQUE
active_from: "2030-08-08"
promo_unique:
- dota2
- doka2
- warcraft3
response:
status_code: 201
save:
json:
company2_promo1_id: id
- name: "Аутентификация компании 1 (инвалидация старого токена)"
request:
url: "{BASE_URL}/business/auth/sign-in"
method: POST
json:
email: "{company1.email:s}"
password: "{company1.password:s}"
response:
status_code: 200
- name: "Получение промокода [1] со старым токеном"
request:
url: "{BASE_URL}/business/promo/{company1_promo1_id}"
method: GET
headers:
Authorization: "Bearer {company1_token}"
response:
status_code: 401
- type: ref
id: basic_auth_auth1
- name: "Редактируем несуществующий промокод (uuid взят из google)"
request:
url: "{BASE_URL}/business/promo/550e8400-e29b-41d4-a716-446655440000"
method: PATCH
headers:
Authorization: "Bearer {company1_token}"
json:
description: "Кэшбек 100%"
response:
status_code: 404
- name: "Редактируем чужой промокод"
request:
url: "{BASE_URL}/business/promo/{company2_promo1_id}"
method: PATCH
headers:
Authorization: "Bearer {company1_token}"
json:
description: "Кэшбек 100%"
response:
status_code: 403
- name: "Редактируем промокод без токена"
request:
url: "{BASE_URL}/business/promo/{company2_promo1_id}"
method: PATCH
json:
description: "Кэшбек 100%"
response:
# Если пользователь передал некорректный токен (или не передал его вовсе), необходимо возвращать ошибку аутентификации
status_code: 401
- name: "Редактируем промокод, некорректный запрос: короткий description"
request:
url: "{BASE_URL}/business/promo/{company2_promo1_id}"
method: PATCH
headers:
Authorization: "Bearer {company2_token}"
json:
description: "qqall"
response:
status_code: 400
- name: "Редактируем промокод, некорректный запрос: некорректный image_url"
request:
url: "{BASE_URL}/business/promo/{company2_promo1_id}"
method: PATCH
headers:
Authorization: "Bearer {company2_token}"
json:
description: "Бонус 10000%!"
image_url: no
response:
status_code: 400
- name: "Редактируем промокод, некорректный запрос: некорректный image_url"
request:
url: "{BASE_URL}/business/promo/{company2_promo1_id}"
method: PATCH
headers:
Authorization: "Bearer {company2_token}"
json:
description: "Бонус 10000%!"
image_url: "https://"
response:
status_code: 400
- name: "Редактируем промокод, некорректный запрос: некорректный image_url"
request:
url: "{BASE_URL}/business/promo/{company2_promo1_id}"
method: PATCH
headers:
Authorization: "Bearer {company2_token}"
json:
description: "Бонус 10000%!"
image_url: notalink
response:
status_code: 400
- name: "Редактируем промокод, некорректный запрос: некорректный image_url"
request:
url: "{BASE_URL}/business/promo/{company2_promo1_id}"
method: PATCH
headers:
Authorization: "Bearer {company2_token}"
json:
image_url: jpeg
response:
status_code: 400
- name: "Редактируем промокод, некорректный таргет"
request:
url: "{BASE_URL}/business/promo/{company2_promo1_id}"
method: PATCH
headers:
Authorization: "Bearer {company2_token}"
json:
description: "Бонус 10000%!"
target:
age_from: 19
age_until: 17
response:
status_code: 400
- name: "Редактируем промокод, некорректный таргет"
request:
url: "{BASE_URL}/business/promo/{company2_promo1_id}"
method: PATCH
headers:
Authorization: "Bearer {company2_token}"
json:
description: "Бонус 10000%!"
target:
country: "USA"
response:
status_code: 400
- name: "Редактируем промокод, некорректный таргет"
request:
url: "{BASE_URL}/business/promo/{company2_promo1_id}"
method: PATCH
headers:
Authorization: "Bearer {company2_token}"
json:
description: "Бонус 10000%!"
target:
categories:
- ""
response:
status_code: 400
- name: "Редактируем промокод, некорректный max_count (для UNIQUE только 1)"
request:
url: "{BASE_URL}/business/promo/{company2_promo1_id}"
method: PATCH
headers:
Authorization: "Bearer {company2_token}"
json:
max_count: 10
response:
status_code: 400
- name: "Редактируем промокод, отрицательный max_count"
request:
url: "{BASE_URL}/business/promo/{company1_promo1_id}"
method: PATCH
headers:
Authorization: "Bearer {company1_token}"
json:
max_count: -10
response:
status_code: 400
- name: "Редактируем промокод, некорректный active_from"
request:
url: "{BASE_URL}/business/promo/{company2_promo1_id}"
method: PATCH
headers:
Authorization: "Bearer {company2_token}"
json:
active_from: "2024-12-28 12:00:00"
response:
status_code: 400
- name: "Получение промокода: проверяем, что поля остались неизменными"
request:
url: "{BASE_URL}/business/promo/{company2_promo1_id}"
method: GET
headers:
Authorization: "Bearer {company2_token}"
response:
status_code: 200
json:
description: "Бесплатный скин на пуджа при регистрации по промокоду!"
target: {}
max_count: 1
mode: UNIQUE
active_from: "2030-08-08"
promo_unique:
- dota2
- doka2
- warcraft3
# В рамках данной группы тестов значение поля active не валидируется