This rule was added in rubocop-rspec 2.9.0. We were using `be_nil` 50% of the time, and `be nil` the rest of the time. No strong preference for either one, but IMHO we don't lose anything be being consistent.
100 lines
2.9 KiB
Ruby
100 lines
2.9 KiB
Ruby
require "rails_helper"
|
|
|
|
describe AdminNotification do
|
|
let(:admin_notification) { build(:admin_notification) }
|
|
|
|
it_behaves_like "globalizable", :admin_notification
|
|
|
|
it "is valid" do
|
|
expect(admin_notification).to be_valid
|
|
end
|
|
|
|
it "is not valid without a title" do
|
|
admin_notification.title = nil
|
|
expect(admin_notification).not_to be_valid
|
|
end
|
|
|
|
it "is not valid without a body" do
|
|
admin_notification.body = nil
|
|
expect(admin_notification).not_to be_valid
|
|
end
|
|
|
|
it "is not valid without a segment_recipient" do
|
|
admin_notification.segment_recipient = nil
|
|
expect(admin_notification).not_to be_valid
|
|
end
|
|
|
|
describe "#complete_link_url" do
|
|
it "does not change link if there is no value" do
|
|
expect(admin_notification.link).to be nil
|
|
end
|
|
|
|
it "fixes a link without http://" do
|
|
admin_notification.link = "lol.consul.dev"
|
|
|
|
expect(admin_notification).to be_valid
|
|
expect(admin_notification.link).to eq("http://lol.consul.dev")
|
|
end
|
|
|
|
it "fixes a link with wwww. but without http://" do
|
|
admin_notification.link = "www.lol.consul.dev"
|
|
|
|
expect(admin_notification).to be_valid
|
|
expect(admin_notification.link).to eq("http://www.lol.consul.dev")
|
|
end
|
|
|
|
it "does not modify a relative link" do
|
|
admin_notification.link = "/proposals"
|
|
|
|
expect(admin_notification).to be_valid
|
|
expect(admin_notification.link).to eq("/proposals")
|
|
end
|
|
|
|
it "does not modify a link with http://" do
|
|
admin_notification.link = "http://lol.consul.dev"
|
|
|
|
expect(admin_notification).to be_valid
|
|
expect(admin_notification.link).to eq("http://lol.consul.dev")
|
|
end
|
|
|
|
it "does not modify a link with https://" do
|
|
admin_notification.link = "https://lol.consul.dev"
|
|
|
|
expect(admin_notification).to be_valid
|
|
expect(admin_notification.link).to eq("https://lol.consul.dev")
|
|
end
|
|
|
|
it "does not modify a link with http://wwww." do
|
|
admin_notification.link = "http://www.lol.consul.dev"
|
|
|
|
expect(admin_notification).to be_valid
|
|
expect(admin_notification.link).to eq("http://www.lol.consul.dev")
|
|
end
|
|
end
|
|
|
|
describe "#valid_segment_recipient?" do
|
|
it "is false when segment_recipient value is invalid" do
|
|
admin_notification.segment_recipient = "invalid_segment_name"
|
|
error = "The user recipients segment is invalid"
|
|
|
|
expect(admin_notification).not_to be_valid
|
|
expect(admin_notification.errors.messages[:segment_recipient]).to include(error)
|
|
end
|
|
end
|
|
|
|
describe "#list_of_recipients" do
|
|
let(:erased_user) { create(:user, username: "erased_user") }
|
|
|
|
before do
|
|
2.times { create(:user) }
|
|
erased_user.erase
|
|
admin_notification.update!(segment_recipient: "all_users")
|
|
end
|
|
|
|
it "returns list of all active users" do
|
|
expect(admin_notification.list_of_recipients.count).to eq(2)
|
|
expect(admin_notification.list_of_recipients).not_to include(erased_user)
|
|
end
|
|
end
|
|
end
|