#691: added specs for Users API
This commit is contained in:
parent
0879a7e46f
commit
84b49052b1
|
@ -8,6 +8,11 @@ class Api::V1::UsersController < Api::V1::BaseController
|
|||
|
||||
def show
|
||||
@user = current_user if params[:id].nil?
|
||||
if @user
|
||||
render :show
|
||||
else
|
||||
render_json_response User.new, 'User does not exist', 422
|
||||
end
|
||||
end
|
||||
|
||||
def update
|
||||
|
|
|
@ -0,0 +1,94 @@
|
|||
# -*- encoding : utf-8 -*-
|
||||
require 'spec_helper'
|
||||
|
||||
describe Api::V1::UsersController do
|
||||
before(:all) { User.destroy_all }
|
||||
before do
|
||||
stub_symlink_methods
|
||||
@user = FactoryGirl.create(:user)
|
||||
end
|
||||
|
||||
context 'for guest' do
|
||||
|
||||
[:show, :notifiers].each do |action|
|
||||
it "should not be able to perform #{ action } action for a current user" do
|
||||
get action, :format => :json
|
||||
response.should_not be_success
|
||||
end
|
||||
end
|
||||
|
||||
it 'should be able to perform show action for a single user', :anonymous_access => true do
|
||||
get :show, :id => @user.id, :format => :json
|
||||
response.should render_template(:show)
|
||||
end
|
||||
|
||||
it 'should not be able to perform show action for a single user', :anonymous_access => false do
|
||||
get :show, :id => @user.id, :format => :json
|
||||
response.should_not be_success
|
||||
end
|
||||
|
||||
context 'should not be able to perform update action for a current user' do
|
||||
before do
|
||||
put :update, {:user => {:company => 'test_company'}}, :format => :json
|
||||
end
|
||||
it { response.should_not be_success }
|
||||
it 'ensures that user has not been updated' do
|
||||
@user.reload
|
||||
@user.company.should_not == 'test_company'
|
||||
end
|
||||
end
|
||||
|
||||
context 'should not be able to perform notifiers action for a current user' do
|
||||
before do
|
||||
put :notifiers, {:notifiers => {:can_notify => false}}, :format => :json
|
||||
end
|
||||
it { response.should_not be_success }
|
||||
it 'ensures that user notification settings have not been updated' do
|
||||
@user.reload
|
||||
@user.notifier.can_notify.should be_true
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context 'for simple user' do
|
||||
before do
|
||||
http_login(@user)
|
||||
end
|
||||
|
||||
[:show, :notifiers].each do |action|
|
||||
it "should be able to perform #{ action } action for a current user" do
|
||||
get action, :format => :json
|
||||
response.should render_template(action)
|
||||
end
|
||||
end
|
||||
|
||||
it 'should be able to perform show action for a single user' do
|
||||
get :show, :id => @user.id, :format => :json
|
||||
response.should render_template(:show)
|
||||
end
|
||||
|
||||
context 'should be able to perform update action for a current user' do
|
||||
before do
|
||||
put :update, {:user => {:company => 'test_company'}}, :format => :json
|
||||
end
|
||||
it { response.should be_success }
|
||||
it 'ensures that user has been updated' do
|
||||
@user.reload
|
||||
@user.company.should == 'test_company'
|
||||
end
|
||||
end
|
||||
|
||||
context 'should be able to perform notifiers action for a current user' do
|
||||
before do
|
||||
put :notifiers, {:notifiers => {:can_notify => false}}, :format => :json
|
||||
end
|
||||
it { response.should be_success }
|
||||
it 'ensures that user notification settings have been updated' do
|
||||
@user.reload
|
||||
@user.notifier.can_notify.should be_false
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue