diff --git a/app/models/post.rb b/app/models/post.rb index d6d8e5600f95f72c7dd943727a091a654c37b19b..30c3bb82cbb9ba7940d150a162830af5fa2ba62c 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -23,6 +23,7 @@ class Post after_save :notify_friends before_destroy :propagate_delete + after_destroy :destroy_comments def self.stream Post.sort(:created_at.desc).all @@ -43,6 +44,10 @@ class Post protected + def destroy_comments + comments.each{|c| c.destroy} + end + def propagate_delete Retraction.for(self).notify_friends end diff --git a/spec/models/post_spec.rb b/spec/models/post_spec.rb index 93deadc9902a0ee4baa5ff1a5937ae6419364b39..091edd71f7746a82547c2e2d3888846d8e26185b 100644 --- a/spec/models/post_spec.rb +++ b/spec/models/post_spec.rb @@ -83,5 +83,15 @@ describe Post do (message.to_xml.to_s.include? @user.email).should == true end end + + describe 'deletion' do + it 'should delete a posts comments on delete' do + post = Factory.create(:status_message, :person => @user) + @user.comment "hey", :on=> post + post.destroy + Post.all(:id => post.id).empty?.should == true + Comment.all(:text => "hey").empty?.should == true + end + end end