You've already forked Promocode-API
mirror of
https://github.com/devitq/Promocode-API.git
synced 2026-05-22 22:07:12 +00:00
327 lines
9.3 KiB
YAML
327 lines
9.3 KiB
YAML
test_name: Активация промокода
|
|
|
|
# Подключение файлов из директории components для переиспользования в тестах
|
|
includes:
|
|
- !include components/basic_auth.yml
|
|
|
|
stages:
|
|
- type: ref
|
|
id: basic_auth_reg1
|
|
|
|
- type: ref
|
|
id: basic_auth_reg2
|
|
|
|
- name: "Регистрация нового пользователя [1]: gb, 60"
|
|
request:
|
|
url: "{BASE_URL}/user/auth/sign-up"
|
|
method: POST
|
|
json:
|
|
name: Steve
|
|
surname: Wozniak
|
|
email: creator2@apple.com
|
|
password: WhoLiveSInCalifornia2000!
|
|
other:
|
|
age: 60
|
|
country: gb
|
|
response:
|
|
status_code: 200
|
|
save:
|
|
json:
|
|
user1_token: token
|
|
|
|
- name: "Регистрация нового пользователя [2]: us, 15"
|
|
request:
|
|
url: "{BASE_URL}/user/auth/sign-up"
|
|
method: POST
|
|
json:
|
|
name: Mike
|
|
surname: Bloomberg
|
|
email: blocked@antifraud.com
|
|
password: WhoLiveSInCalifornia2000!
|
|
other:
|
|
age: 15
|
|
country: us
|
|
response:
|
|
status_code: 200
|
|
save:
|
|
json:
|
|
user2_token: token
|
|
|
|
- name: "Регистрация нового пользователя [3]: kz, 40"
|
|
request:
|
|
url: "{BASE_URL}/user/auth/sign-up"
|
|
method: POST
|
|
json:
|
|
name: Yefim
|
|
surname: Dinitz
|
|
email: algo3@prog.ru
|
|
password: HardPASSword1!
|
|
other:
|
|
age: 40
|
|
country: kz
|
|
response:
|
|
status_code: 200
|
|
save:
|
|
json:
|
|
user3_token: token
|
|
|
|
- name: "Создание промокода [1]: active, <all>"
|
|
request:
|
|
url: "{BASE_URL}/business/promo"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {company1_token}"
|
|
json:
|
|
description: "[1] Активный COMMON промокод для всех"
|
|
target: {}
|
|
max_count: 4
|
|
active_from: "2025-01-10"
|
|
mode: "COMMON"
|
|
promo_common: "sale-10"
|
|
response:
|
|
status_code: 201
|
|
save:
|
|
json:
|
|
promo1_id: id
|
|
|
|
- name: "Создание промокода [2]: inactive, <kz>, 28.."
|
|
request:
|
|
url: "{BASE_URL}/business/promo"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {company2_token}"
|
|
json:
|
|
description: "[1] Активный COMMON промокод для kz, 28.."
|
|
target:
|
|
country: kz
|
|
age_from: 28
|
|
max_count: 10
|
|
active_from: "2025-02-10"
|
|
mode: "COMMON"
|
|
promo_common: "sale-20"
|
|
response:
|
|
status_code: 201
|
|
save:
|
|
json:
|
|
promo2_id: id
|
|
|
|
- name: "Создание промокода [3]: active, <gb>, 45.."
|
|
request:
|
|
url: "{BASE_URL}/business/promo"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {company2_token}"
|
|
json:
|
|
description: "[3] Активный UNIQUE промокод для gb, 45.."
|
|
target:
|
|
country: gb
|
|
age_from: 45
|
|
active_until: "2035-02-10"
|
|
mode: "UNIQUE"
|
|
max_count: 1
|
|
promo_unique:
|
|
- uniq1
|
|
- uniq2
|
|
response:
|
|
status_code: 201
|
|
save:
|
|
json:
|
|
promo3_id: id
|
|
|
|
- name: "Активация промокода [2]: отказ, так как промокод inactive"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/{promo2_id}/activate"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {user3_token}"
|
|
response:
|
|
status_code: 403
|
|
|
|
- name: "Активация промокода [2]: отказ, так как промокод не соответствует настройкам таргетинга"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/{promo2_id}/activate"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {user3_token}"
|
|
response:
|
|
status_code: 403
|
|
|
|
- name: "Активация промокода [1] пользователем 1: успех"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/{promo1_id}/activate"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {user1_token}"
|
|
response:
|
|
status_code: 200
|
|
json:
|
|
promo: "sale-10"
|
|
|
|
- name: "Активация промокода [1] пользователем 3: успех"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/{promo1_id}/activate"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {user3_token}"
|
|
response:
|
|
status_code: 200
|
|
json:
|
|
promo: "sale-10"
|
|
|
|
- name: "Активация промокода [1] пользователем 1: успех"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/{promo1_id}/activate"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {user1_token}"
|
|
response:
|
|
status_code: 200
|
|
json:
|
|
promo: "sale-10"
|
|
|
|
# - name: "Внутренний запрос в Antifraud: заблокировать пользователя 2 (переменная ANTIFRAUD_URL, см. config.yml)"
|
|
# max_retries: 3
|
|
# request:
|
|
# url: "{ANTIFRAUD_URL}/update_user_verdict"
|
|
# method: POST
|
|
# json:
|
|
# user_email: mike2@bloomberg.com
|
|
# ok: false
|
|
# response:
|
|
# status_code: 200
|
|
|
|
- name: "Активация промокода [1] пользователем 2: пользователь заблокирован"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/{promo1_id}/activate"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {user2_token}"
|
|
response:
|
|
status_code: 403
|
|
|
|
- name: "Активация промокода [1] пользователем 3: успех"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/{promo1_id}/activate"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {user3_token}"
|
|
response:
|
|
status_code: 200
|
|
json:
|
|
promo: "sale-10"
|
|
|
|
- name: "Активация промокода [1] пользователем 1: исчерпан лимит max_count"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/{promo1_id}/activate"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {user1_token}"
|
|
response:
|
|
status_code: 403
|
|
|
|
- name: "Попытка уменьшить max_count: сделать меньше used_count"
|
|
request:
|
|
url: "{BASE_URL}/business/promo/{promo1_id}"
|
|
method: PATCH
|
|
headers:
|
|
Authorization: "Bearer {company1_token}"
|
|
json:
|
|
max_count: 3
|
|
response:
|
|
status_code: 400
|
|
|
|
- name: "Активация промокода [3] пользователем 1: корректный запрос [1]"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/{promo3_id}/activate"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {user1_token}"
|
|
response:
|
|
status_code: 200
|
|
|
|
- name: "Активация промокода [3] пользователем 1: корректный запрос [2]"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/{promo3_id}/activate"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {user1_token}"
|
|
response:
|
|
status_code: 200
|
|
|
|
- name: "Активация промокода [3] пользователем 1: исчерпан лимит по числу активаций"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/{promo3_id}/activate"
|
|
method: POST
|
|
headers:
|
|
Authorization: "Bearer {user1_token}"
|
|
response:
|
|
status_code: 403
|
|
|
|
- name: "Получение промокода [1] со стороны пользователя 1"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/{promo1_id}"
|
|
method: GET
|
|
headers:
|
|
Authorization: "Bearer {user1_token}"
|
|
response:
|
|
status_code: 200
|
|
json:
|
|
promo_id: "{promo1_id}"
|
|
active: false
|
|
is_activated_by_user: true
|
|
|
|
- name: "Получение истории активаций пользователем 1"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/history"
|
|
method: GET
|
|
headers:
|
|
Authorization: "Bearer {user1_token}"
|
|
response:
|
|
status_code: 200
|
|
json:
|
|
- promo_id: "{promo3_id}"
|
|
active: false
|
|
is_activated_by_user: true
|
|
- promo_id: "{promo3_id}"
|
|
active: false
|
|
is_activated_by_user: true
|
|
- promo_id: "{promo1_id}"
|
|
active: false
|
|
is_activated_by_user: true
|
|
- promo_id: "{promo1_id}"
|
|
active: false
|
|
is_activated_by_user: true
|
|
|
|
- name: "Получение истории активаций пользователем 1 (пагинация 2-3)"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/history"
|
|
method: GET
|
|
params:
|
|
offset: 2
|
|
limit: 3
|
|
headers:
|
|
Authorization: "Bearer {user1_token}"
|
|
response:
|
|
status_code: 200
|
|
json:
|
|
- promo_id: "{promo1_id}"
|
|
active: false
|
|
is_activated_by_user: true
|
|
- promo_id: "{promo1_id}"
|
|
active: false
|
|
is_activated_by_user: true
|
|
headers:
|
|
X-Total-Count: "4"
|
|
|
|
- name: "Получение истории активаций пользователем 1 (пагинация -0)"
|
|
request:
|
|
url: "{BASE_URL}/user/promo/history"
|
|
method: GET
|
|
params:
|
|
limit: 0
|
|
headers:
|
|
Authorization: "Bearer {user1_token}"
|
|
response:
|
|
status_code: 200
|
|
json: []
|