124 lines
3.4 KiB
Plaintext
124 lines
3.4 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 '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'
|
||
|
|
|