diff --git a/app/controllers/admins_controller.rb b/app/controllers/admins_controller.rb index 80dbefcc6b0d13b3c9ed6404d4ccd1bbf76e801a..c3288560af9da12fe6d41333a9b062f0a119a756 100644 --- a/app/controllers/admins_controller.rb +++ b/app/controllers/admins_controller.rb @@ -1,7 +1,7 @@ class AdminsController < ApplicationController before_filter :authenticate_user! - before_filter :redirect_unless_admin - + before_filter :redirect_unless_admin + def user_search user = params[:user] || {} user = user.delete_if {|key, value| value.blank? } @@ -17,7 +17,10 @@ class AdminsController < ApplicationController end def admin_inviter - Invitation.create_invitee(:service => 'email', :identifier => params[:identifier]) + opts = {:service => 'email', :identifier => params[:identifier]} + existing_user = Invitation.find_existing_user('email', params[:identifier]) + 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' end diff --git a/spec/controllers/admins_controller_spec.rb b/spec/controllers/admins_controller_spec.rb index 1ae61d5b609b6c533c1a72c2e2788f0690f8c773..7b8d89d8a8d91d1b8b274fd918d138bd015d6e79 100644 --- a/spec/controllers/admins_controller_spec.rb +++ b/spec/controllers/admins_controller_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe AdminsController do render_views before do - @user = Factory :user + @user = Factory :user sign_in :user, @user end @@ -54,11 +54,18 @@ describe AdminsController do end describe '#admin_inviter' do - it 'invites a user' 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 end + it 'passes an existing user to create_invitee' do + Factory.create(:user, :email => 'bob@moms.com') + bob = User.where(:email => 'bob@moms.com').first + Invitation.should_receive(:find_existing_user).with('email', 'bob@moms.com').and_return(bob) + Invitation.should_receive(:create_invitee).with(:service => 'email', :identifier => 'bob@moms.com', :existing_user => bob) + get :admin_inviter, :identifier => 'bob@moms.com' + end end end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 78975a400c626dfe38dc4f145f4572ef0459d8a8..aa6cece2081c7481e8123c2d5e81c5298086bb77 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -8,7 +8,6 @@ ENV["RAILS_ENV"] ||= 'test' require File.join(File.dirname(__FILE__), '..', 'config', 'environment') unless defined?(Rails) require 'helper_methods' require 'rspec/rails' -puts require 'rspec' require 'webmock/rspec' require 'factory_girl'