[campaign]
name = "Users API — smoke tests"
description = "Login, then validate the basic CRUD flow on the user resource"
[env]
BASE_URL = "https://api.example.com"
EMAIL = "admin@example.com"
PASSWORD = "secret"
[[steps]]
name = "Login"
method = "POST"
url = "{{BASE_URL}}/auth/login"
body = '{"email": "{{EMAIL}}", "password": "{{PASSWORD}}"}'
[steps.headers]
Content-Type = "application/json"
[steps.extract]
JWT = "token"
USER_ID = "user.id"
[[steps]]
name = "Get my profile"
method = "GET"
url = "{{BASE_URL}}/users/{{USER_ID}}"
[steps.headers]
Authorization = "Bearer {{JWT}}"
[[steps]]
name = "List users"
method = "GET"
url = "{{BASE_URL}}/users"
[steps.headers]
Authorization = "Bearer {{JWT}}"
[[steps]]
name = "Create user"
method = "POST"
url = "{{BASE_URL}}/users"
body = '{"username": "tsodev", "email": "thierry@tsodev.fr", "role": "editor"}'
[steps.headers]
Authorization = "Bearer {{JWT}}"
Content-Type = "application/json"
[[steps]]
name = "Delete user"
method = "DELETE"
url = "{{BASE_URL}}/users/42"
[steps.headers]
Authorization = "Bearer {{JWT}}"