From 0ce0e47ff86d2c9e09dd44b93d72010dae4c71ef Mon Sep 17 00:00:00 2001
From: Maxwell Salzberg <maxwell@joindiaspora.com>
Date: Thu, 19 Jan 2012 15:24:07 -0800
Subject: [PATCH] fix #2698; allow a user to delete a reshare of a deleted post

---
 app/models/reshare.rb       |  2 +-
 spec/models/reshare_spec.rb | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/app/models/reshare.rb b/app/models/reshare.rb
index f5468a5b22..7caaeb999d 100644
--- a/app/models/reshare.rb
+++ b/app/models/reshare.rb
@@ -22,7 +22,7 @@ class Reshare < Post
   end
 
   after_destroy do
-    self.root.update_reshares_counter
+    self.root.update_reshares_counter if self.root.present?
   end
 
   def root_diaspora_id
diff --git a/spec/models/reshare_spec.rb b/spec/models/reshare_spec.rb
index 5795fc9eba..b8da885628 100644
--- a/spec/models/reshare_spec.rb
+++ b/spec/models/reshare_spec.rb
@@ -105,6 +105,17 @@ describe Reshare do
         end
       end
 
+      describe 'destroy' do
+        it 'allows you to destroy the reshare if the root post is missing' do
+          reshare = Factory(:reshare)
+          reshare.root = nil
+          
+          expect{
+            reshare.destroy
+          }.should_not raise_error
+        end
+      end
+
       context 'remote' do
         before do
           @root_object = @reshare.root
-- 
GitLab