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.
50 lines
1.5 KiB
Ruby
50 lines
1.5 KiB
Ruby
require "rails_helper"
|
|
|
|
describe Poll::Booth do
|
|
|
|
let(:booth) { build(:poll_booth) }
|
|
|
|
it "is valid" do
|
|
expect(booth).to be_valid
|
|
end
|
|
|
|
it "is not valid without a name" do
|
|
booth.name = nil
|
|
expect(booth).not_to be_valid
|
|
end
|
|
|
|
describe "#search" do
|
|
it "finds booths searching by name or location" do
|
|
booth1 = create(:poll_booth, name: "Booth number 1", location: "City center")
|
|
booth2 = create(:poll_booth, name: "Central", location: "Town hall")
|
|
|
|
expect(Poll::Booth.search("number")).to eq([booth1])
|
|
expect(Poll::Booth.search("hall")).to eq([booth2])
|
|
expect(Poll::Booth.search("cen").size).to eq 2
|
|
end
|
|
end
|
|
|
|
describe ".available" do
|
|
|
|
it "returns booths associated to current polls" do
|
|
booth_for_current_poll = create(:poll_booth)
|
|
booth_for_expired_poll = create(:poll_booth)
|
|
|
|
current_poll = create(:poll, :current)
|
|
expired_poll = create(:poll, :expired)
|
|
|
|
create(:poll_booth_assignment, poll: current_poll, booth: booth_for_current_poll)
|
|
create(:poll_booth_assignment, poll: expired_poll, booth: booth_for_expired_poll)
|
|
|
|
expect(Poll::Booth.available).to include(booth_for_current_poll)
|
|
expect(Poll::Booth.available).not_to include(booth_for_expired_poll)
|
|
end
|
|
|
|
it "returns polls with multiple translations only once" do
|
|
create(:poll_booth, polls: [create(:poll, :current, name: "English", name_es: "Spanish")])
|
|
|
|
expect(Poll::Booth.available.count).to eq 1
|
|
end
|
|
end
|
|
end
|