diff --git a/app/controllers/invitations_controller.rb b/app/controllers/invitations_controller.rb index 7db02cf39..c5e89750a 100644 --- a/app/controllers/invitations_controller.rb +++ b/app/controllers/invitations_controller.rb @@ -23,7 +23,7 @@ class InvitationsController < Devise::InvitationsController good_emails, bad_emails = emails.partition{|e| e.try(:match, Devise.email_regexp)} - good_emails.each{|e| Resque.enqueue(Job::InviteUser, current_user.id, e, aspect, message)} + good_emails.each{|e| Resque.enqueue(Job::InviteUserByEmail, current_user.id, e, aspect, message)} if bad_emails.any? flash[:error] = I18n.t('invitations.create.sent') + good_emails.join(', ') + " "+ I18n.t('invitations.create.rejected') + bad_emails.join(', ') diff --git a/app/models/jobs/invite_user.rb b/app/models/jobs/invite_user_by_email.rb similarity index 91% rename from app/models/jobs/invite_user.rb rename to app/models/jobs/invite_user_by_email.rb index f316afddc..83b378124 100644 --- a/app/models/jobs/invite_user.rb +++ b/app/models/jobs/invite_user_by_email.rb @@ -4,7 +4,7 @@ module Job - class InviteUser < Base + class InviteUserByEmail < Base @queue = :mail def self.perform_delegate(sender_id, email, aspect_id, invite_message) user = User.find(sender_id) diff --git a/spec/models/jobs/invite_user_by_email_spec.rb b/spec/models/jobs/invite_user_by_email_spec.rb new file mode 100644 index 000000000..a1d04de22 --- /dev/null +++ b/spec/models/jobs/invite_user_by_email_spec.rb @@ -0,0 +1,23 @@ +require 'spec_helper' + +describe Job::InviteUserByEmail do + before do + @sender = alice + @email = 'bob@bob.com' + @aspect_id = alice.aspects.first.id + @message = 'invite message' + + User.stub(:find){ |id| + if id == @sender.id + @sender + else + nil + end + } + end + + it 'calls invite_user with email param' do + @sender.should_receive(:invite_user).with(@aspect_id, 'email', @email, @message) + Job::InviteUserByEmail.perform(@sender.id, @email, @aspect_id, @message) + end +end