diff --git a/app/models/jobs/resend_invitation.rb b/app/models/jobs/resend_invitation.rb new file mode 100644 index 000000000..dded9c1fd --- /dev/null +++ b/app/models/jobs/resend_invitation.rb @@ -0,0 +1,14 @@ +# Copyright (c) 2010, Diaspora Inc. This file is +# licensed under the Affero General Public License version 3 or later. See +# the COPYRIGHT file. + + +module Job + class ResendInvitation < Base + @queue = :mail + def self.perform_delegate(invitation_id) + inv = Invitation.where(:id => invitation_id).first + inv.resend + end + end +end diff --git a/spec/models/jobs/resend_invitation_spec.rb b/spec/models/jobs/resend_invitation_spec.rb new file mode 100644 index 000000000..49879c3a1 --- /dev/null +++ b/spec/models/jobs/resend_invitation_spec.rb @@ -0,0 +1,21 @@ +# Copyright (c) 2010, Diaspora Inc. This file is +# licensed under the Affero General Public License version 3 or later. See +# the COPYRIGHT file. + +require 'spec_helper' + +describe Job::ResendInvitation do + describe '#perfom_delegate' do + it 'should call .resend on the object' do + user = alice + aspect = user.aspects.create(:name => "cats") + user.invite_user("b@b.com", aspect.id) + invitation = user.reload.invitations_from_me.first + + #Notification.should_receive(:notify).with(instance_of(User), instance_of(StatusMessage), instance_of(Person)) + Invitation.stub(:where).with(:id => invitation.id ).and_return(invitation) + invitation.should_receive(:resend) + Job::ResendInvitation.perform_delegate(invitation) + end + end +end