diff --git a/app/workers/mail/invite_user_by_email.rb b/app/workers/mail/invite_email.rb similarity index 56% rename from app/workers/mail/invite_user_by_email.rb rename to app/workers/mail/invite_email.rb index 87946cde5..685d628e5 100644 --- a/app/workers/mail/invite_user_by_email.rb +++ b/app/workers/mail/invite_email.rb @@ -4,14 +4,11 @@ module Workers module Mail - class InviteUserByEmail < Base + class InviteEmail < Base sidekiq_options queue: :mail - - def perform(invite_id) - invite = Invitation.find(invite_id) - I18n.with_locale(invite.language) do - invite.send! - end + + def perform(emails, inviter_id, options={}) + EmailInviter.new(emails, User.find(inviter_id), options).send! end end end diff --git a/spec/workers/mail/invite_email_spec.rb b/spec/workers/mail/invite_email_spec.rb new file mode 100644 index 000000000..ca0a2d6e2 --- /dev/null +++ b/spec/workers/mail/invite_email_spec.rb @@ -0,0 +1,14 @@ +require 'spec_helper' + +describe Workers::Mail::InviteEmail do + let(:emails) { ['foo@bar.com', 'baz@bar.com'] } + let(:message) { 'get over here!' } + let(:email_inviter) { double('EmailInviter') } + + it 'creates a new email inviter' do + EmailInviter.should_receive(:new).with(emails, alice, message: message) + .and_return(email_inviter) + email_inviter.should_receive(:send!) + Workers::Mail::InviteEmail.new.perform(emails, alice, message: message) + end +end diff --git a/spec/workers/mail/invite_user_by_email_spec.rb b/spec/workers/mail/invite_user_by_email_spec.rb deleted file mode 100644 index 4137361ad..000000000 --- a/spec/workers/mail/invite_user_by_email_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -require 'spec_helper' - -describe Workers::Mail::InviteUserByEmail do - before do - @sender = alice - @email = 'bob@bob.com' - @aspect = alice.aspects.first - @message = 'invite message' - end - - it 'calls invite_user with email param' do - invitation = Invitation.create(:sender => @sender, :identifier => @email, :service => "email", :aspect => @aspect, :message => @message) - invitation.should_receive(:send!) - Invitation.stub(:find).and_return(invitation) - Workers::Mail::InviteUserByEmail.new.perform(invitation.id) - end -end