From 267a1df3c46fd4a7fcb1d749d8bbe2d1c582d91f Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Mon, 18 May 2015 00:27:54 +0200 Subject: [PATCH] fix root_diaspora_id when root was deleted --- app/models/reshare.rb | 2 +- spec/models/reshare_spec.rb | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/models/reshare.rb b/app/models/reshare.rb index c10cde1f0..93803af1d 100644 --- a/app/models/reshare.rb +++ b/app/models/reshare.rb @@ -26,7 +26,7 @@ class Reshare < Post end def root_diaspora_id - self.root.author.diaspora_handle + root.try(:author).try(:diaspora_handle) end delegate :o_embed_cache, :open_graph_cache, diff --git a/spec/models/reshare_spec.rb b/spec/models/reshare_spec.rb index 155ac527d..ff1781b9a 100644 --- a/spec/models/reshare_spec.rb +++ b/spec/models/reshare_spec.rb @@ -20,6 +20,19 @@ describe Reshare, :type => :model do expect(FactoryGirl.create(:reshare, :public => false).public).to be true end + describe "#root_diaspora_id" do + it "should return the root diaspora id" do + reshare = FactoryGirl.create(:reshare, root: FactoryGirl.build(:status_message, author: bob.person, public: true)) + expect(reshare.root_diaspora_id).to eq(bob.person.diaspora_handle) + end + + it "should be nil if no root found" do + reshare = FactoryGirl.create(:reshare, root: FactoryGirl.build(:status_message, author: bob.person, public: true)) + reshare.root = nil + expect(reshare.root_diaspora_id).to be_nil + end + end + describe "#receive" do let(:receive_reshare) { @reshare.receive(@root.author.owner, @reshare.author) }