diff --git a/app/controllers/admins_controller.rb b/app/controllers/admins_controller.rb index 37231b0dd28d9b161caa2c7c2e7148874a9bd851..1b7e858f8a015926503b44a4c26fd55914634312 100644 --- a/app/controllers/admins_controller.rb +++ b/app/controllers/admins_controller.rb @@ -9,16 +9,15 @@ class AdminsController < ApplicationController end def add_invites - u = User.find(params[:user_id]) + user = User.find(params[:user_id]) - if u - notice = "Great Job!" - u.update_attributes(:invites => (u.invites += 10)) + if user.increment(:invites, 10).save + flash[:notice] = "Great Job!" else - notice = "there was a problem adding invites" + flash[:alert] = "there was a problem adding invites" end - redirect_to :back, :notice => notice, :user => {:id => u.id} + redirect_to user_search_path(:user => { :id => user.id }) end def admin_inviter @@ -27,6 +26,6 @@ class AdminsController < ApplicationController opts.merge!(:existing_user => existing_user) if existing_user Invitation.create_invitee(opts) flash[:notice] = "invitation sent to #{params[:identifier]}" - redirect_to '/admins/user_search' + redirect_to user_search_path end end diff --git a/spec/controllers/admins_controller_spec.rb b/spec/controllers/admins_controller_spec.rb index 57721ace2e57a0af46f9c7b67b6200c513c9b4aa..48348e0da9b9448e322e3a244c5bba5f43814e7f 100644 --- a/spec/controllers/admins_controller_spec.rb +++ b/spec/controllers/admins_controller_spec.rb @@ -60,7 +60,41 @@ describe AdminsController do end end + describe '#add_invites' do + context 'admin not signed in' do + it 'is behind redirect_unless_admin' do + get :add_invites + response.should redirect_to root_url + end + end + + context 'admin signed in' do + before do + AppConfig[:admins] = [@user.username] + end + + it "redirects to :back with user id" do + get :add_invites, :user_id => @user.id + response.should redirect_to user_search_path(:user => { :id => @user.id }) + end + + it "increases user's invite by 10" do + expect { + get :add_invites, :user_id => @user.id + }.to change { @user.reload.invites }.by(10) + flash.notice.should include('Great Job') + end + end + end + describe '#admin_inviter' do + context 'admin not signed in' do + it 'is behind redirect_unless_admin' do + get :admin_inviter + response.should redirect_to root_url + end + end + context 'admin signed in' do before do AppConfig[:admins] = [@user.username] @@ -69,7 +103,8 @@ describe AdminsController do it 'invites a new user' do Invitation.should_receive(:create_invitee).with(:service => 'email', :identifier => 'bob@moms.com') get :admin_inviter, :identifier => 'bob@moms.com' - response.should be_redirect + response.should redirect_to user_search_path + flash.notice.should include("invitation sent") end it 'passes an existing user to create_invitee' do