Create Budget Poll offline/online vote feature test

This commit is contained in:
Bertocq
2018-06-04 18:53:36 +02:00
committed by Javi Martín
parent 12bccf3fd0
commit d3660d1245

View File

@@ -0,0 +1,91 @@
require "rails_helper"
feature "BudgetPolls", :with_frozen_time do
let(:budget) { create(:budget, :balloting) }
let(:poll) { create(:poll, :current) }
let(:booth) { create(:poll_booth) }
let(:officer) { create(:poll_officer) }
let(:admin) { create(:administrator) }
background 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)
end
context "Offline" do
scenario "A citizen can cast a paper vote", :js do
user = create(:user, :in_census)
login_through_form_as_officer(officer.user)
visit new_officing_residence_path
officing_verify_residence
expect(page).to have_content poll.name
within("#poll_#{poll.id}") do
click_button("Confirm vote")
expect(page).not_to have_button("Confirm vote")
expect(page).to have_content "Vote introduced!"
end
expect(Poll::Voter.count).to eq(1)
expect(Poll::Voter.first.origin).to eq("booth")
visit root_path
click_link "Sign out"
login_as(admin.user)
visit admin_poll_recounts_path(poll)
within("#total_system") do
expect(page).to have_content "1"
end
within("#poll_booth_assignment_#{Poll::BoothAssignment.where(poll: poll, booth: booth).first.id}_recounts") do
expect(page).to have_content "1"
end
end
scenario "A citizen cannot vote offline again", :js do
user = create(:user, :in_census)
login_through_form_as_officer(officer.user)
visit new_officing_residence_path
officing_verify_residence
within("#poll_#{poll.id}") do
click_button("Confirm vote")
end
visit new_officing_residence_path
officing_verify_residence
within("#poll_#{poll.id}") do
expect(page).to have_content "Has already participated in this poll"
end
end
scenario "A citizen cannot vote online after voting offline" do
# create scenario for an user that voted offline
# Check the citizen cannot vote online
end
end
context "Online" do
scenario "A citizen can cast vote online" do
# Login as User
# Cast a vote for an investment
end
scenario "A citizen cannot vote offline after voting online" do
# create scenario for an user that voted online
# Login as Poll Officer
# Check the citizen cannot vote offline
end
end
end