135 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			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'
 | 
						|
 |