about summary refs log tree commit diff
path: root/spec
diff options
context:
space:
mode:
authorRenato "Lond" Cerqueira <renato@lond.com.br>2018-04-12 20:36:02 +0200
committerEugen Rochko <eugen@zeonfederated.com>2018-04-12 20:36:02 +0200
commit14d86eb0d076cbadc5944d817ddb731d95312ccf (patch)
tree145868d33d5dcc4c599eb7101569ae6b4942b51e /spec
parent50529cbceb84e611bca497624a7a4c38113e5135 (diff)
Allow more than the max pins if account is not local (#7105)
Sidekiq sometimes throws errors for users that have more pinned items
than the allowed by the local instance. It should only validate the
number of pins for local accounts.
Diffstat (limited to 'spec')
-rw-r--r--spec/models/status_pin_spec.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/models/status_pin_spec.rb b/spec/models/status_pin_spec.rb
index 6f54f80f9..944baf639 100644
--- a/spec/models/status_pin_spec.rb
+++ b/spec/models/status_pin_spec.rb
@@ -37,5 +37,36 @@ RSpec.describe StatusPin, type: :model do
 
       expect(StatusPin.new(account: account, status: status).save).to be false
     end
+
+    max_pins = 5
+    it 'does not allow pins above the max' do
+      account = Fabricate(:account)
+      status = []
+
+      (max_pins + 1).times do |i|
+        status[i] = Fabricate(:status, account: account)
+      end
+
+      max_pins.times do |i|
+        expect(StatusPin.new(account: account, status: status[i]).save).to be true
+      end
+
+      expect(StatusPin.new(account: account, status: status[max_pins]).save).to be false
+    end
+
+    it 'allows pins above the max for remote accounts' do
+      account = Fabricate(:account, domain: 'remote', username: 'bob', url: 'https://remote/')
+      status = []
+
+      (max_pins + 1).times do |i|
+        status[i] = Fabricate(:status, account: account)
+      end
+
+      max_pins.times do |i|
+        expect(StatusPin.new(account: account, status: status[i]).save).to be true
+      end
+
+      expect(StatusPin.new(account: account, status: status[max_pins]).save).to be true
+    end
   end
 end