about summary refs log tree commit diff
path: root/spec
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2018-08-18 03:03:23 +0200
committerGitHub <noreply@github.com>2018-08-18 03:03:23 +0200
commitd010816ba876bf4f749749e9d7432a843e8a1ff9 (patch)
tree08e9b4c45c1de2bad5455164cd008b1597db4665 /spec
parent78fa926ed560e6a9738144bec7e152fa42104139 (diff)
Fix error when trying to update counters for statuses that are gone (#8251)
Diffstat (limited to 'spec')
-rw-r--r--spec/models/status_spec.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index b3e475d99..d03005107 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -182,6 +182,27 @@ RSpec.describe Status, type: :model do
       reblog.destroy
       expect(subject.reblogs_count).to eq 0
     end
+
+    it 'does not fail when original is deleted before reblog' do
+      reblog = Fabricate(:status, account: bob, reblog: subject)
+      expect(subject.reblogs_count).to eq 1
+      expect { subject.destroy }.to_not raise_error
+      expect(Status.find_by(id: reblog.id)).to be_nil
+    end
+  end
+
+  describe '#replies_count' do
+    it 'is the number of replies' do
+      reply = Fabricate(:status, account: bob, thread: subject)
+      expect(subject.replies_count).to eq 1
+    end
+
+    it 'is decremented when reply is removed' do
+      reply = Fabricate(:status, account: bob, thread: subject)
+      expect(subject.replies_count).to eq 1
+      reply.destroy
+      expect(subject.replies_count).to eq 0
+    end
   end
 
   describe '#favourites_count' do