Fix direct_messages_max_per_day set to nil

When set to nil, it should mean not zero, but "infinite".
This commit is contained in:
David Rodríguez
2017-10-21 17:07:21 +02:00
parent e6384bd5df
commit 97331cb1c9
2 changed files with 37 additions and 24 deletions

View File

@@ -13,6 +13,7 @@ class DirectMessage < ActiveRecord::Base
def max_per_day def max_per_day
return if errors.any? return if errors.any?
max = Setting[:direct_message_max_per_day] max = Setting[:direct_message_max_per_day]
return unless max
if sender.direct_messages_sent.today.count >= max.to_i if sender.direct_messages_sent.today.count >= max.to_i
errors.add(:title, I18n.t('activerecord.errors.models.direct_message.attributes.max_per_day.invalid')) errors.add(:title, I18n.t('activerecord.errors.models.direct_message.attributes.max_per_day.invalid'))

View File

@@ -4,10 +4,6 @@ describe DirectMessage do
let(:direct_message) { build(:direct_message) } let(:direct_message) { build(:direct_message) }
before(:each) do
Setting[:direct_message_max_per_day] = 3
end
it "should be valid" do it "should be valid" do
expect(direct_message).to be_valid expect(direct_message).to be_valid
end end
@@ -33,6 +29,10 @@ describe DirectMessage do
end end
describe "maximum number of direct messages per day" do describe "maximum number of direct messages per day" do
context "when set" do
before(:each) do
Setting[:direct_message_max_per_day] = 3
end
it "should not be valid if above maximum" do it "should not be valid if above maximum" do
sender = create(:user) sender = create(:user)
@@ -58,7 +58,19 @@ describe DirectMessage do
expect(direct_message).to be_valid expect(direct_message).to be_valid
end end
end
context "when unset" do
before(:each) do
Setting[:direct_message_max_per_day] = nil
end
it "should be valid" do
direct_message = build(:direct_message)
expect(direct_message).to be_valid
end
end
end end
describe "scopes" do describe "scopes" do