42 lines
1.5 KiB
Ruby
42 lines
1.5 KiB
Ruby
# Copyright (c) 2010-2011, Diaspora Inc. This file is
|
|
# licensed under the Affero General Public License version 3 or later. See
|
|
# the COPYRIGHT file.
|
|
|
|
require "spec_helper"
|
|
|
|
describe Notifications::Reshared, type: :model do
|
|
let(:sm) { FactoryGirl.build(:status_message, author: alice.person, public: true) }
|
|
let(:reshare) { FactoryGirl.build(:reshare, root: sm) }
|
|
let(:reshared_notification) { Notifications::Reshared.new(recipient: alice) }
|
|
|
|
describe ".notify" do
|
|
it "calls concatenate_or_create with root post" do
|
|
expect(Notifications::Reshared).to receive(:concatenate_or_create).with(
|
|
alice, reshare.root, reshare.author
|
|
).and_return(reshared_notification)
|
|
|
|
Notifications::Reshared.notify(reshare, [])
|
|
end
|
|
|
|
it "sends an email to the root author" do
|
|
allow(Notifications::Reshared).to receive(:concatenate_or_create).and_return(reshared_notification)
|
|
expect(alice).to receive(:mail).with(Workers::Mail::Reshared, alice.id, reshare.author.id, reshare.id)
|
|
|
|
Notifications::Reshared.notify(reshare, [])
|
|
end
|
|
|
|
it "does nothing if the root was deleted" do
|
|
reshare.root = nil
|
|
expect(Notifications::Reshared).not_to receive(:concatenate_or_create)
|
|
|
|
Notifications::Reshared.notify(reshare, [])
|
|
end
|
|
|
|
it "does nothing if the root author is not local" do
|
|
sm.author = remote_raphael
|
|
expect(Notifications::Reshared).not_to receive(:concatenate_or_create)
|
|
|
|
Notifications::Reshared.notify(reshare, [])
|
|
end
|
|
end
|
|
end
|