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:
@@ -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'))
|
||||||
|
|||||||
@@ -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,32 +29,48 @@ 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)
|
||||||
direct_message1 = create(:direct_message, sender: sender)
|
direct_message1 = create(:direct_message, sender: sender)
|
||||||
direct_message2 = create(:direct_message, sender: sender)
|
direct_message2 = create(:direct_message, sender: sender)
|
||||||
direct_message3 = create(:direct_message, sender: sender)
|
direct_message3 = create(:direct_message, sender: sender)
|
||||||
|
|
||||||
direct_message4 = build(:direct_message, sender: sender)
|
direct_message4 = build(:direct_message, sender: sender)
|
||||||
expect(direct_message4).to_not be_valid
|
expect(direct_message4).to_not be_valid
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should be valid if below maximum" do
|
||||||
|
sender = create(:user)
|
||||||
|
direct_message1 = create(:direct_message, sender: sender)
|
||||||
|
direct_message2 = create(:direct_message, sender: sender)
|
||||||
|
|
||||||
|
direct_message3 = build(:direct_message)
|
||||||
|
expect(direct_message).to be_valid
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should be valid if no direct_messages sent" do
|
||||||
|
direct_message = build(:direct_message)
|
||||||
|
|
||||||
|
expect(direct_message).to be_valid
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should be valid if below maximum" do
|
context "when unset" do
|
||||||
sender = create(:user)
|
before(:each) do
|
||||||
direct_message1 = create(:direct_message, sender: sender)
|
Setting[:direct_message_max_per_day] = nil
|
||||||
direct_message2 = create(:direct_message, sender: sender)
|
end
|
||||||
|
|
||||||
direct_message3 = build(:direct_message)
|
it "should be valid" do
|
||||||
expect(direct_message).to be_valid
|
direct_message = build(:direct_message)
|
||||||
|
|
||||||
|
expect(direct_message).to be_valid
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should be valid if no direct_messages sent" do
|
|
||||||
direct_message = build(:direct_message)
|
|
||||||
|
|
||||||
expect(direct_message).to be_valid
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "scopes" do
|
describe "scopes" do
|
||||||
|
|||||||
Reference in New Issue
Block a user