fluke/devops-service/tests/templates/api_v2/10_create/00_user.feature.erb
2014-07-15 12:57:21 +04:00

135 lines
3.7 KiB
Plaintext

@user
Feature: create user
Scenario: create user with user without privileges
When I send POST '/v2.0/user' query with JSON body with user without privileges
"""
{
"username": "<%= @config["user"]["name"] %>",
"email": "<%= @config["user"]["name"] %>@test.test",
"password": "<%= @config["user"]["name"] %>"
}
"""
Then response should be '401'
Scenario: create user without header 'Accept'
When I send POST '/v2.0/user' query with JSON body without header 'Accept'
"""
{
"username": "<%= @config["user"]["name"] %>",
"email": "<%= @config["user"]["name"] %>@test.test",
"password": "<%= @config["user"]["name"] %>"
}
"""
Then response should be '406'
Scenario: create user without header 'Content-Type'
When I send POST '/v2.0/user' query with JSON body without header 'Content-Type'
"""
{
"username": "<%= @config["user"]["name"] %>",
"email": "<%= @config["user"]["name"] %>@test.test",
"password": "<%= @config["user"]["name"] %>"
}
"""
Then response should be '415'
Scenario: create user, invalid body: empty
When I send POST '/v2.0/user' query with JSON body
"""
"""
Then response should be '400'
<% ["{}", "[]"].each do |k| %>
Scenario: create user, invalid body: body is a '<%= k %>'
When I send POST '/v2.0/user' query with JSON body
"""
<%= k %>
"""
Then response should be '400'
<% end %>
<% elements = ["{}", "[]", "null" ] %>
<% elements.each do |k| %>
Scenario: create user, invalid body: username is a '<%= k %>'
When I send POST '/v2.0/user' query with JSON body
"""
{
"username": <%= k %>,
"email": "<%= @config["user"]["name"] %>@test.test",
"password": "<%= @config["user"]["name"] %>"
}
"""
Then response should be '400'
<% end %>
<% elements.each do |k| %>
Scenario: create user, invalid body: password is a '<%= k %>'
When I send POST '/v2.0/user' query with JSON body
"""
{
"username": "<%= @config["user"]["name"] %>",
"email": "<%= @config["user"]["name"] %>@test.test",
"password": <%= k %>
}
"""
Then response should be '400'
<% end %>
<% elements.each do |k| %>
Scenario: create user, invalid body: email is a '<%= k %>'
When I send POST '/v2.0/user' query with JSON body
"""
{
"username": "<%= @config["user"]["name"] %>",
"email": <%= k %>,
"password": "<%= @config["user"]["name"] %>"
}
"""
Then response should be '400'
<% end %>
Scenario: create user, invalid body: without username
When I send POST '/v2.0/user' query with JSON body
"""
{
"email": "<%= @config["user"]["name"] %>@test.test",
"password": "<%= @config["user"]["name"] %>"
}
"""
Then response should be '400'
Scenario: create user, invalid body: without email
When I send POST '/v2.0/user' query with JSON body
"""
{
"username": "<%= @config["user"]["name"] %>",
"password": "<%= @config["user"]["name"] %>"
}
"""
Then response should be '400'
Scenario: create user, invalid body: without password
When I send POST '/v2.0/user' query with JSON body
"""
{
"email": "<%= @config["user"]["name"] %>@test.test",
"username": "<%= @config["user"]["name"] %>"
}
"""
Then response should be '400'
Scenario: create user
When I send POST '/v2.0/user' query with JSON body
"""
{
"username": "<%= @config["user"]["name"] %>",
"email": "<%= @config["user"]["name"] %>@test.test",
"password": "<%= @config["user"]["name"] %>"
}
"""
Then response should be '201'
And the Content-Type header should include 'application/json'