Select Git revision
users_controller_test.rb
users_controller_test.rb 4.70 KiB
require 'test_helper'
class Api::UsersControllerTest < ApiControllerTest
test "user can change settings" do
user = find_record :user
attribs = record_attributes_for(:user)
changed_attribs = attribs.slice 'login',
'password_verifier',
'password_salt'
account_settings = stub
account_settings.expects(:update).with(changed_attribs)
Account.expects(:new).with(user).returns(account_settings)
login user
api_put :update, :user => attribs, :id => user.id, :format => :json
assert_equal user, assigns[:user]
assert_response 204
assert @response.body.blank?, "Response should be blank"
end
test "deal with empty settings" do
user = find_record :user
login user
assert_raises ActionController::ParameterMissing do
api_put :update, :id => user.id, :format => :json
end
end
test "admin can update user" do
user = find_record :user
attribs = record_attributes_for(:user)
changed_attribs = attribs.slice 'login',
'password_verifier',
'password_salt'
account_settings = stub
account_settings.expects(:update).with(changed_attribs)
Account.expects(:new).with(user).returns(account_settings)
login :is_admin? => true
api_put :update, :user => attribs, :id => user.id, :format => :json
assert_equal user, assigns[:user]
assert_response 204
end
test "user cannot update other user" do
user = find_record :user
login
api_put :update, id: user.id,
user: record_attributes_for(:user_with_settings),
:format => :json
assert_access_denied
end
test "should create new user" do
user_attribs = record_attributes_for :user
user = User.new(user_attribs)
Account.expects(:create).with(user_attribs).returns(user)
api_post :create, :user => user_attribs, :format => :json
assert_nil session[:user_id]
assert_json_response user
assert_response :success
end
test "should redirect to signup form on failed attempt" do
user_attribs = record_attributes_for :user