We settled on using this style in commit 4cbe81a1, but didn't add the
rule enforcing this style and we didn't apply it to existing code.
98 lines
2.6 KiB
Ruby
98 lines
2.6 KiB
Ruby
require "rails_helper"
|
|
|
|
describe DirectMessage do
|
|
|
|
let(:direct_message) { build(:direct_message) }
|
|
|
|
it "is valid" do
|
|
expect(direct_message).to be_valid
|
|
end
|
|
|
|
it "is not valid without a title" do
|
|
direct_message.title = nil
|
|
expect(direct_message).not_to be_valid
|
|
end
|
|
|
|
it "is not valid without a body" do
|
|
direct_message.body = nil
|
|
expect(direct_message).not_to be_valid
|
|
end
|
|
|
|
it "is not valid without an associated sender" do
|
|
direct_message.sender = nil
|
|
expect(direct_message).not_to be_valid
|
|
end
|
|
|
|
it "is not valid without an associated receiver" do
|
|
direct_message.receiver = nil
|
|
expect(direct_message).not_to be_valid
|
|
end
|
|
|
|
describe "maximum number of direct messages per day" do
|
|
context "when set" do
|
|
before do
|
|
Setting[:direct_message_max_per_day] = 3
|
|
end
|
|
|
|
it "is not valid if above maximum" do
|
|
sender = create(:user)
|
|
direct_message1 = create(:direct_message, sender: sender)
|
|
direct_message2 = create(:direct_message, sender: sender)
|
|
direct_message3 = create(:direct_message, sender: sender)
|
|
|
|
direct_message4 = build(:direct_message, sender: sender)
|
|
expect(direct_message4).not_to be_valid
|
|
end
|
|
|
|
it "is 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 "is valid if no direct_messages sent" do
|
|
direct_message = build(:direct_message)
|
|
|
|
expect(direct_message).to be_valid
|
|
end
|
|
end
|
|
|
|
context "when unset" do
|
|
before do
|
|
Setting[:direct_message_max_per_day] = nil
|
|
end
|
|
|
|
it "is valid" do
|
|
direct_message = build(:direct_message)
|
|
|
|
expect(direct_message).to be_valid
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "scopes" do
|
|
|
|
describe "today", :with_non_utc_time_zone do
|
|
it "returns direct messages created today" do
|
|
create(:direct_message, created_at: Date.current.beginning_of_day)
|
|
create(:direct_message, created_at: Time.current)
|
|
create(:direct_message, created_at: Date.current.end_of_day)
|
|
|
|
expect(DirectMessage.today.count).to eq 3
|
|
end
|
|
|
|
it "does not return direct messages created another day" do
|
|
direct_message1 = create(:direct_message, created_at: 1.day.ago)
|
|
direct_message2 = create(:direct_message, created_at: 1.day.from_now)
|
|
|
|
expect(DirectMessage.today.count).to eq 0
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
end
|