diaspora/spec/workers/mail/liked_spec.rb
2015-05-24 02:30:02 +02:00

38 lines
1.5 KiB
Ruby

require "spec_helper"
describe Workers::Mail::Liked do
describe "#perfom" do
it "should call .deliver_now on the notifier object" do
sm = FactoryGirl.build(:status_message, author: bob.person, public: true)
like = FactoryGirl.build(:like, author: alice.person, target: sm)
mail_double = double
expect(mail_double).to receive(:deliver_now)
expect(Notifier).to receive(:liked).with(bob.id, like.author.id, like.id).and_return(mail_double)
Workers::Mail::Liked.new.perform(bob.id, like.author.id, like.id)
end
it "should not fail if the like is not found" do
sm = FactoryGirl.build(:status_message, author: bob.person, public: true)
like = FactoryGirl.build(:like, author: alice.person, target: sm)
expect(Notifier).to receive(:liked).with(bob.id, like.author.id, like.id)
.and_raise(ActiveRecord::RecordNotFound.new("Couldn't find Like with 'id'=42"))
Workers::Mail::Liked.new.perform(bob.id, like.author.id, like.id)
end
it "should fail if the sender is not found" do
sm = FactoryGirl.build(:status_message, author: bob.person, public: true)
like = FactoryGirl.build(:like, author: alice.person, target: sm)
expect(Notifier).to receive(:liked).with(bob.id, like.author.id, like.id)
.and_raise(ActiveRecord::RecordNotFound.new("Couldn't find Person with 'id'=42"))
expect {
Workers::Mail::Liked.new.perform(bob.id, like.author.id, like.id)
}.to raise_error(ActiveRecord::RecordNotFound)
end
end
end