Skip to content

Commit

Permalink
Merge pull request consuldemocracy#3723 from consul/simplify_poll_fac…
Browse files Browse the repository at this point in the history
…tories

Simplify data creation in poll factories
  • Loading branch information
javierm committed Sep 25, 2019
2 parents 3656da4 + 848b46e commit 64a9baa
Show file tree
Hide file tree
Showing 15 changed files with 61 additions and 131 deletions.
8 changes: 7 additions & 1 deletion spec/factories/polls.rb
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,15 @@

factory :poll_officer_assignment, class: "Poll::OfficerAssignment" do
association :officer, factory: :poll_officer
association :booth_assignment, factory: :poll_booth_assignment
date { Date.current }

transient { poll { association(:poll) } }
transient { booth { association(:poll_booth) } }

booth_assignment do
association :poll_booth_assignment, poll: poll, booth: booth
end

trait :final do
final { true }
end
Expand Down
12 changes: 4 additions & 8 deletions spec/features/admin/poll/booth_assigments_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,8 @@
end

scenario "Unassing booth whith associated shifts", :js do
assignment = create(:poll_booth_assignment, poll: poll, booth: booth)
officer = create(:poll_officer)
create(:poll_officer_assignment, officer: officer, booth_assignment: assignment)
create(:poll_officer_assignment, officer: officer, poll: poll, booth: booth)
create(:poll_shift, booth: booth, officer: officer)

visit manage_admin_poll_booth_assignments_path(poll)
Expand All @@ -138,8 +137,7 @@
end

scenario "Cannot unassing booth if poll is expired" do
poll_expired = create(:poll, :expired)
create(:poll_booth_assignment, poll: poll_expired, booth: booth)
poll_expired = create(:poll, :expired, booths: [booth])

visit manage_admin_poll_booth_assignments_path(poll_expired)

Expand All @@ -157,12 +155,10 @@
scenario "Lists all assigned poll officers" do
poll = create(:poll)
booth = create(:poll_booth)
booth_assignment = create(:poll_booth_assignment, poll: poll, booth: booth)
officer_assignment = create(:poll_officer_assignment, booth_assignment: booth_assignment)
officer_assignment = create(:poll_officer_assignment, poll: poll, booth: booth)
officer = officer_assignment.officer

booth_assignment_2 = create(:poll_booth_assignment, poll: poll)
officer_assignment_2 = create(:poll_officer_assignment, booth_assignment: booth_assignment_2)
officer_assignment_2 = create(:poll_officer_assignment, poll: poll)
officer_2 = officer_assignment_2.officer

visit admin_poll_path(poll)
Expand Down
16 changes: 4 additions & 12 deletions spec/features/admin/poll/booths_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,8 @@
end

scenario "Available" 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)
booth_for_current_poll = create(:poll_booth, polls: [create(:poll, :current)])
booth_for_expired_poll = create(:poll_booth, polls: [create(:poll, :expired)])

visit admin_root_path

Expand Down Expand Up @@ -85,8 +79,7 @@

scenario "Edit" do
poll = create(:poll, :current)
booth = create(:poll_booth)
assignment = create(:poll_booth_assignment, poll: poll, booth: booth)
booth = create(:poll_booth, polls: [poll])

visit admin_booths_path

Expand All @@ -111,8 +104,7 @@

scenario "Back link go back to available list when manage shifts" do
poll = create(:poll, :current)
booth = create(:poll_booth)
assignment = create(:poll_booth_assignment, poll: poll, booth: booth)
booth = create(:poll_booth, polls: [poll])

visit available_admin_booths_path

Expand Down
16 changes: 4 additions & 12 deletions spec/features/admin/poll/officer_assignments_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,13 @@

scenario "Index" do
poll = create(:poll)
booth = create(:poll_booth)

officer1 = create(:poll_officer)
officer2 = create(:poll_officer)
officer3 = create(:poll_officer)

booth_assignment = create(:poll_booth_assignment, poll: poll, booth: booth)
officer_assignment = create(:poll_officer_assignment, booth_assignment: booth_assignment, officer: officer1)

booth_assignment_2 = create(:poll_booth_assignment, poll: poll)
officer_assignment_2 = create(:poll_officer_assignment, booth_assignment: booth_assignment_2, officer: officer2)
officer_assignment = create(:poll_officer_assignment, poll: poll, officer: officer1)
officer_assignment_2 = create(:poll_officer_assignment, poll: poll, officer: officer2)

visit admin_poll_path(poll)

Expand All @@ -34,7 +30,6 @@

scenario "Search", :js do
poll = create(:poll)
booth = create(:poll_booth)

user1 = create(:user, username: "John Snow")
user2 = create(:user, username: "John Silver")
Expand All @@ -44,11 +39,8 @@
officer2 = create(:poll_officer, user: user2)
officer3 = create(:poll_officer, user: user3)

booth_assignment = create(:poll_booth_assignment, poll: poll, booth: booth)
officer_assignment = create(:poll_officer_assignment, booth_assignment: booth_assignment, officer: officer1)

booth_assignment_2 = create(:poll_booth_assignment, poll: poll)
officer_assignment_2 = create(:poll_officer_assignment, booth_assignment: booth_assignment_2, officer: officer2)
officer_assignment = create(:poll_officer_assignment, poll: poll, officer: officer1)
officer_assignment_2 = create(:poll_officer_assignment, poll: poll, officer: officer2)

visit admin_poll_path(poll)

Expand Down
13 changes: 4 additions & 9 deletions spec/features/admin/poll/shifts_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,7 @@
scenario "Create Vote Collection Shift and Recount & Scrutiny Shift on same date", :js do
create(:poll)
poll = create(:poll, :current)
booth = create(:poll_booth)
create(:poll_booth_assignment, poll: poll, booth: booth)
create(:poll_booth_assignment, poll: create(:poll, :expired), booth: booth)
booth = create(:poll_booth, polls: [poll, create(:poll, :expired)])
officer = create(:poll_officer)
vote_collection_dates = (Date.current..poll.ends_at.to_date).to_a.map { |date| I18n.l(date, format: :long) }
recount_scrutiny_dates = (poll.ends_at.to_date..poll.ends_at.to_date + 1.week).to_a.map { |date| I18n.l(date, format: :long) }
Expand Down Expand Up @@ -98,8 +96,7 @@

scenario "Vote Collection Shift and Recount & Scrutiny Shift don't include already assigned dates to officer", :js do
poll = create(:poll, :current)
booth = create(:poll_booth)
assignment = create(:poll_booth_assignment, poll: poll, booth: booth)
booth = create(:poll_booth, polls: [poll])
officer = create(:poll_officer)

shift1 = create(:poll_shift, :vote_collection_task, officer: officer, booth: booth, date: Date.current)
Expand Down Expand Up @@ -149,8 +146,7 @@

scenario "Error on create", :js do
poll = create(:poll, :current)
booth = create(:poll_booth)
assignment = create(:poll_booth_assignment, poll: poll, booth: booth)
booth = create(:poll_booth, polls: [poll])
officer = create(:poll_officer)

visit available_admin_booths_path
Expand All @@ -171,8 +167,7 @@

scenario "Destroy" do
poll = create(:poll, :current)
booth = create(:poll_booth)
assignment = create(:poll_booth_assignment, poll: poll, booth: booth)
booth = create(:poll_booth, polls: [poll])
officer = create(:poll_officer)

shift = create(:poll_shift, officer: officer, booth: booth)
Expand Down
11 changes: 2 additions & 9 deletions spec/features/budget_polls/ballot_sheets_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@

describe "Poll budget ballot sheets" do
let(:poll) { create(:poll, :for_budget, ends_at: 1.day.ago) }
let(:booth) { create(:poll_booth) }
let(:booth) { create(:poll_booth, polls: [poll]) }
let(:poll_officer) { create(:poll_officer) }

context "Officing recounts and results view" do

before do
create(:poll_booth_assignment, poll: poll, booth: booth)
create(:poll_shift, :recount_scrutiny_task, officer: poll_officer, booth: booth,
date: Date.current)
create(:poll_officer_assignment, officer: poll_officer)
Expand Down Expand Up @@ -44,7 +43,6 @@
end

scenario "Access ballot sheets officing with one booth assignment" do
create(:poll_booth_assignment, poll: poll, booth: booth)
create(:poll_shift, :recount_scrutiny_task, officer: poll_officer, booth: booth,
date: Date.current)
create(:poll_officer_assignment, officer: poll_officer)
Expand All @@ -58,9 +56,7 @@
end

scenario "Access ballot sheets officing with multiple booth assignments", :with_frozen_time do
booth_2 = create(:poll_booth)
create(:poll_booth_assignment, poll: poll, booth: booth)
create(:poll_booth_assignment, poll: poll, booth: booth_2)
booth_2 = create(:poll_booth, polls: [poll])
create(:poll_shift, :recount_scrutiny_task, officer: poll_officer, booth: booth,
date: Date.current)
create(:poll_shift, :recount_scrutiny_task, officer: poll_officer, booth: booth_2,
Expand All @@ -80,7 +76,6 @@
context "Index" do

before do
create(:poll_booth_assignment, poll: poll, booth: booth)
create(:poll_shift, :recount_scrutiny_task, officer: poll_officer, booth: booth,
date: Date.current)

Expand All @@ -102,7 +97,6 @@
context "New" do

before do
create(:poll_booth_assignment, poll: poll, booth: booth)
create(:poll_shift, :recount_scrutiny_task, officer: poll_officer, booth: booth,
date: Date.current)
create(:poll_officer_assignment, officer: poll_officer)
Expand Down Expand Up @@ -150,7 +144,6 @@
context "Show" do

before do
create(:poll_booth_assignment, poll: poll, booth: booth)
create(:poll_shift, :recount_scrutiny_task, officer: poll_officer, booth: booth,
date: Date.current)

Expand Down
3 changes: 1 addition & 2 deletions spec/features/budget_polls/voter_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@

before do
create(:poll_shift, officer: officer, booth: booth, date: Date.current, task: :vote_collection)
booth_assignment = create(:poll_booth_assignment, poll: poll, booth: booth)
create(:poll_officer_assignment, officer: officer, booth_assignment: booth_assignment, date: Date.current)
create(:poll_officer_assignment, officer: officer, poll: poll, booth: booth, date: Date.current)
end

context "Offline" do
Expand Down
20 changes: 6 additions & 14 deletions spec/features/officing/booth_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@

booth = create(:poll_booth)

booth_assignment = create(:poll_booth_assignment, poll: poll, booth: booth)
create(:poll_officer_assignment, officer: officer, booth_assignment: booth_assignment, date: Date.current)
create(:poll_officer_assignment, officer: officer, poll: poll, booth: booth, date: Date.current)

login_through_form_as_officer(officer.user)

Expand All @@ -42,11 +41,8 @@
booth1 = create(:poll_booth)
booth2 = create(:poll_booth)

ba1 = create(:poll_booth_assignment, poll: poll, booth: booth1)
ba2 = create(:poll_booth_assignment, poll: poll, booth: booth2)

create(:poll_officer_assignment, officer: officer, booth_assignment: ba1, date: Date.current)
create(:poll_officer_assignment, officer: officer, booth_assignment: ba2, date: Date.current)
create(:poll_officer_assignment, officer: officer, poll: poll, booth: booth1, date: Date.current)
create(:poll_officer_assignment, officer: officer, poll: poll, booth: booth2, date: Date.current)

login_through_form_as_officer(officer.user)

Expand All @@ -69,13 +65,9 @@
poll1 = create(:poll)
poll2 = create(:poll)

ba1 = create(:poll_booth_assignment, poll: poll1, booth: booth1)
ba2 = create(:poll_booth_assignment, poll: poll2, booth: booth2)
ba3 = create(:poll_booth_assignment, poll: poll2, booth: booth2)

create(:poll_officer_assignment, officer: officer, booth_assignment: ba1, date: Date.current)
create(:poll_officer_assignment, officer: officer, booth_assignment: ba2, date: Date.current)
create(:poll_officer_assignment, officer: officer, booth_assignment: ba3, date: Date.current)
create(:poll_officer_assignment, officer: officer, poll: poll1, booth: booth1, date: Date.current)
create(:poll_officer_assignment, officer: officer, poll: poll2, booth: booth2, date: Date.current)
create(:poll_officer_assignment, officer: officer, poll: poll2, booth: booth2, date: Date.current)

login_through_form_as_officer(officer.user)

Expand Down
3 changes: 1 addition & 2 deletions spec/features/officing/residence_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,7 @@
booth = create(:poll_booth)
poll = create(:poll)

ba = create(:poll_booth_assignment, poll: poll, booth: booth)
create(:poll_officer_assignment, officer: officer, booth_assignment: ba)
create(:poll_officer_assignment, officer: officer, poll: poll, booth: booth)
create(:poll_shift, officer: officer, booth: booth, date: Date.current)

login_as(officer.user)
Expand Down
3 changes: 1 addition & 2 deletions spec/features/officing/results_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@

describe "Officing Results", :with_frozen_time do
let(:poll) { create(:poll, ends_at: 1.day.ago) }
let(:booth) { create(:poll_booth) }
let(:booth) { create(:poll_booth, polls: [poll]) }
let(:poll_officer) { create(:poll_officer) }

before do
create(:poll_booth_assignment, poll: poll, booth: booth)
create(:poll_shift, :recount_scrutiny_task, officer: poll_officer, booth: booth, date: Date.current)
@question_1 = create(:poll_question, poll: poll)
create(:poll_question_answer, title: "Yes", question: @question_1, given_order: 1)
Expand Down
28 changes: 9 additions & 19 deletions spec/features/officing/voters_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
login_as(officer.user)
create(:geozone, :in_census)
create(:poll_shift, officer: officer, booth: booth, date: Date.current, task: :vote_collection)
booth_assignment = create(:poll_booth_assignment, poll: poll, booth: booth)
create(:poll_officer_assignment, officer: officer, booth_assignment: booth_assignment)
create(:poll_officer_assignment, officer: officer, poll: poll, booth: booth)
set_officing_booth(booth)
end

Expand All @@ -38,8 +37,7 @@

scenario "Cannot vote" do
unvotable_poll = create(:poll, :current, geozone_restricted: true, geozones: [create(:geozone, census_code: "02")])
booth_assignment = create(:poll_booth_assignment, poll: unvotable_poll, booth: booth)
officer_assignment = create(:poll_officer_assignment, officer: officer, booth_assignment: booth_assignment)
officer_assignment = create(:poll_officer_assignment, officer: officer, poll: unvotable_poll, booth: booth)

set_officing_booth(booth)
visit new_officing_residence_path
Expand All @@ -53,8 +51,7 @@

scenario "Already voted" do
poll2 = create(:poll, :current)
booth_assignment = create(:poll_booth_assignment, poll: poll2, booth: booth)
create(:poll_officer_assignment, officer: officer, booth_assignment: booth_assignment)
create(:poll_officer_assignment, officer: officer, poll: poll2, booth: booth)

user = create(:user, :level_two)
voter = create(:poll_voter, poll: poll, user: user)
Expand Down Expand Up @@ -90,8 +87,7 @@

scenario "Display current polls assigned to a booth" do
poll = create(:poll, :current)
booth_assignment = create(:poll_booth_assignment, poll: poll, booth: booth)
officer_assignment = create(:poll_officer_assignment, officer: officer, booth_assignment: booth_assignment)
officer_assignment = create(:poll_officer_assignment, officer: officer, poll: poll, booth: booth)

set_officing_booth(booth)
visit new_officing_residence_path
Expand All @@ -103,8 +99,7 @@

scenario "Display polls that the user can vote" do
votable_poll = create(:poll, :current, geozone_restricted: true, geozones: [Geozone.first])
booth_assignment = create(:poll_booth_assignment, poll: votable_poll, booth: booth)
officer_assignment = create(:poll_officer_assignment, officer: officer, booth_assignment: booth_assignment)
officer_assignment = create(:poll_officer_assignment, officer: officer, poll: votable_poll, booth: booth)

set_officing_booth(booth)
visit new_officing_residence_path
Expand All @@ -116,8 +111,7 @@

scenario "Display polls that the user cannot vote" do
unvotable_poll = create(:poll, :current, geozone_restricted: true, geozones: [create(:geozone, census_code: "02")])
booth_assignment = create(:poll_booth_assignment, poll: unvotable_poll, booth: booth)
officer_assignment = create(:poll_officer_assignment, officer: officer, booth_assignment: booth_assignment)
officer_assignment = create(:poll_officer_assignment, officer: officer, poll: unvotable_poll, booth: booth)

set_officing_booth(booth)
visit new_officing_residence_path
Expand All @@ -129,8 +123,7 @@

scenario "Do not display expired polls" do
expired_poll = create(:poll, :expired)
booth_assignment = create(:poll_booth_assignment, poll: expired_poll, booth: booth)
officer_assignment = create(:poll_officer_assignment, officer: officer, booth_assignment: booth_assignment)
officer_assignment = create(:poll_officer_assignment, officer: officer, poll: expired_poll, booth: booth)

set_officing_booth(booth)
visit new_officing_residence_path
Expand All @@ -147,11 +140,8 @@
booth1 = create(:poll_booth)
booth2 = create(:poll_booth)

booth_assignment1 = create(:poll_booth_assignment, poll: poll1, booth: booth1)
booth_assignment2 = create(:poll_booth_assignment, poll: poll2, booth: booth2)

officer_assignment1 = create(:poll_officer_assignment, officer: officer, booth_assignment: booth_assignment1)
officer_assignment2 = create(:poll_officer_assignment, officer: officer, booth_assignment: booth_assignment2)
officer_assignment1 = create(:poll_officer_assignment, officer: officer, poll: poll1, booth: booth1)
officer_assignment2 = create(:poll_officer_assignment, officer: officer, poll: poll2, booth: booth2)

set_officing_booth(booth1)
visit new_officing_residence_path
Expand Down
Loading

0 comments on commit 64a9baa

Please sign in to comment.