users_test.rb 2.07 KB
# encoding: UTF-8
require File.dirname(__FILE__) + '/test_helper'

class UsersTest < ActiveSupport::TestCase

  def setup
    login_api
  end

  should 'list users' do
    get "/api/v1/users/?#{params.to_query}"
    json = JSON.parse(last_response.body)
    assert_includes json["users"].map { |a| a["login"] }, user.login
  end

  should 'create a user' do
    params[:user] = {:login => 'some', :password => '123456', :password_confirmation => '123456', :email => 'some@some.com'}
    post "/api/v1/users?#{params.to_query}"
    json = JSON.parse(last_response.body)
    assert_equal 'some', json['user']['login']
  end

  should 'not create duplicate user' do
    params[:lang] = :"pt-BR"
    params[:user] = {:login => 'some', :password => '123456', :password_confirmation => '123456', :email => 'some@some.com'}
    post "/api/v1/users?#{params.to_query}"
    json = JSON.parse(last_response.body)
    assert_equal 'some', json['user']['login']
    params[:user] = {:login => 'some', :password => '123456', :password_confirmation => '123456', :email => 'some@some.com'}
    post "/api/v1/users?#{params.to_query}"
    json = JSON.parse(last_response.body)
    assert_equal 'Username / Email já está em uso,e-Mail já está em uso', json['message']
  end

  should 'return 400 status for invalid user creation' do
    params[:user] = {:login => 'some'}
    post "/api/v1/users?#{params.to_query}"
    json = JSON.parse(last_response.body)
    assert_equal 400, last_response.status
  end

  should 'get user' do
    get "/api/v1/users/#{user.id}?#{params.to_query}"
    json = JSON.parse(last_response.body)
    assert_equal user.id, json['user']['id']
  end

  should 'list user permissions' do
    community = fast_create(Community)
    community.add_admin(person)
    get "/api/v1/users/#{user.id}/?#{params.to_query}"
    json = JSON.parse(last_response.body)
    assert_includes json["user"]["permissions"], community.identifier
  end

  should 'get logged user' do
    get "/api/v1/users/me?#{params.to_query}"
    json = JSON.parse(last_response.body)
    assert_equal user.id, json['user']['id']
  end

end