diff --git a/spec/features/polls/results_spec.rb b/spec/features/polls/results_spec.rb index c67ad3869..b17fb463a 100644 --- a/spec/features/polls/results_spec.rb +++ b/spec/features/polls/results_spec.rb @@ -1,8 +1,10 @@ require 'rails_helper' feature 'Poll Results' do - scenario 'List each Poll question' do - user = create(:user, :level_two) + scenario 'List each Poll question', :js do + user1 = create(:user, :level_two) + user2 = create(:user, :level_two) + user3 = create(:user, :level_two) poll = create(:poll) question1 = create(:poll_question, poll: poll) @@ -14,13 +16,38 @@ feature 'Poll Results' do answer4 = create(:poll_question_answer, question: question2, title: 'Green') answer5 = create(:poll_question_answer, question: question2, title: 'Yellow') - login_as user + login_as user1 vote_for_poll_via_web(poll, question1, 'Yes') - vote_for_poll_via_web(poll, question1, 'Blue') + vote_for_poll_via_web(poll, question2, 'Blue') + expect(Poll::Voter.count).to eq(1) + logout + + login_as user2 + vote_for_poll_via_web(poll, question1, 'Yes') + vote_for_poll_via_web(poll, question2, 'Green') + expect(Poll::Voter.count).to eq(2) + logout + + login_as user3 + vote_for_poll_via_web(poll, question1, 'No') + vote_for_poll_via_web(poll, question2, 'Yellow') + expect(Poll::Voter.count).to eq(3) + logout visit poll_results_path(poll) expect(page).to have_content(question1.title) expect(page).to have_content(question2.title) + + within("#question_#{question1.id}_results_table") do + expect(find("#answer_#{answer1.id}_result")).to have_content("2 (66.0%)") + expect(find("#answer_#{answer2.id}_result")).to have_content("1 (33.0%)") + end + + within("#question_#{question2.id}_results_table") do + expect(find("#answer_#{answer3.id}_result")).to have_content("1 (33.0%)") + expect(find("#answer_#{answer4.id}_result")).to have_content("1 (33.0%)") + expect(find("#answer_#{answer5.id}_result")).to have_content("1 (33.0%)") + end end end diff --git a/spec/features/polls/voter_spec.rb b/spec/features/polls/voter_spec.rb index 7e451be17..aee0ff522 100644 --- a/spec/features/polls/voter_spec.rb +++ b/spec/features/polls/voter_spec.rb @@ -96,6 +96,7 @@ feature "Voter" do scenario "Trying to vote in web and then in booth", :js do login_as user vote_for_poll_via_web(poll, question, 'Yes') + expect(Poll::Voter.count).to eq(1) click_link "Sign out" @@ -128,6 +129,7 @@ feature "Voter" do scenario "Trying to vote in web again", :js do login_as user vote_for_poll_via_web(poll, question, 'Yes') + expect(Poll::Voter.count).to eq(1) visit poll_path(poll) diff --git a/spec/support/common_actions.rb b/spec/support/common_actions.rb index 90deab1b5..5023c1952 100644 --- a/spec/support/common_actions.rb +++ b/spec/support/common_actions.rb @@ -306,8 +306,6 @@ module CommonActions click_link "#{answer}" expect(page).to_not have_link("#{answer}") end - - expect(Poll::Voter.count).to eq(1) end def vote_for_poll_via_booth