diff options
author | Renato "Lond" Cerqueira <renato@lond.com.br> | 2018-04-12 20:36:02 +0200 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2018-04-12 20:36:02 +0200 |
commit | 14d86eb0d076cbadc5944d817ddb731d95312ccf (patch) | |
tree | 145868d33d5dcc4c599eb7101569ae6b4942b51e /spec/models | |
parent | 50529cbceb84e611bca497624a7a4c38113e5135 (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/models')
-rw-r--r-- | spec/models/status_pin_spec.rb | 31 |
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 |