|
|
|
|
@@ -73,7 +73,10 @@ feature 'Polls' do
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
scenario 'Non-logged in users' do
|
|
|
|
|
create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
|
|
|
|
question = create(:poll_question, poll: poll)
|
|
|
|
|
answer1 = create(:poll_question_answer, question: question, title: 'Han Solo')
|
|
|
|
|
answer2 = create(:poll_question_answer, question: question, title: 'Chewbacca')
|
|
|
|
|
|
|
|
|
|
visit poll_path(poll)
|
|
|
|
|
|
|
|
|
|
expect(page).to have_content('Han Solo')
|
|
|
|
|
@@ -87,7 +90,11 @@ feature 'Polls' do
|
|
|
|
|
scenario 'Level 1 users' do
|
|
|
|
|
poll.update(geozone_restricted: true)
|
|
|
|
|
poll.geozones << geozone
|
|
|
|
|
create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
|
|
|
|
|
|
|
|
|
question = create(:poll_question, poll: poll)
|
|
|
|
|
answer1 = create(:poll_question_answer, question: question, title: 'Han Solo')
|
|
|
|
|
answer2 = create(:poll_question_answer, question: question, title: 'Chewbacca')
|
|
|
|
|
|
|
|
|
|
login_as(create(:user, geozone: geozone))
|
|
|
|
|
visit poll_path(poll)
|
|
|
|
|
|
|
|
|
|
@@ -103,7 +110,11 @@ feature 'Polls' do
|
|
|
|
|
scenario 'Level 2 users in an incoming poll' do
|
|
|
|
|
incoming_poll = create(:poll, :incoming, geozone_restricted: true)
|
|
|
|
|
incoming_poll.geozones << geozone
|
|
|
|
|
create(:poll_question, poll: incoming_poll, valid_answers: 'Rey, Finn')
|
|
|
|
|
|
|
|
|
|
question = create(:poll_question, poll: incoming_poll)
|
|
|
|
|
answer1 = create(:poll_question_answer, question: question, title: 'Rey')
|
|
|
|
|
answer2 = create(:poll_question_answer, question: question, title: 'Finn')
|
|
|
|
|
|
|
|
|
|
login_as(create(:user, :level_two, geozone: geozone))
|
|
|
|
|
|
|
|
|
|
visit poll_path(incoming_poll)
|
|
|
|
|
@@ -119,7 +130,11 @@ feature 'Polls' do
|
|
|
|
|
scenario 'Level 2 users in an expired poll' do
|
|
|
|
|
expired_poll = create(:poll, :expired, geozone_restricted: true)
|
|
|
|
|
expired_poll.geozones << geozone
|
|
|
|
|
create(:poll_question, poll: expired_poll, valid_answers: 'Luke, Leia')
|
|
|
|
|
|
|
|
|
|
question = create(:poll_question, poll: expired_poll)
|
|
|
|
|
answer1 = create(:poll_question_answer, question: question, title: 'Luke')
|
|
|
|
|
answer2 = create(:poll_question_answer, question: question, title: 'Leia')
|
|
|
|
|
|
|
|
|
|
login_as(create(:user, :level_two, geozone: geozone))
|
|
|
|
|
|
|
|
|
|
visit poll_path(expired_poll)
|
|
|
|
|
@@ -135,7 +150,11 @@ feature 'Polls' do
|
|
|
|
|
scenario 'Level 2 users in a poll with questions for a geozone which is not theirs' do
|
|
|
|
|
poll.update(geozone_restricted: true)
|
|
|
|
|
poll.geozones << create(:geozone)
|
|
|
|
|
create(:poll_question, poll: poll, valid_answers: 'Vader, Palpatine')
|
|
|
|
|
|
|
|
|
|
question = create(:poll_question, poll: poll)
|
|
|
|
|
answer1 = create(:poll_question_answer, question: question, title: 'Vader')
|
|
|
|
|
answer2 = create(:poll_question_answer, question: question, title: 'Palpatine')
|
|
|
|
|
|
|
|
|
|
login_as(create(:user, :level_two))
|
|
|
|
|
|
|
|
|
|
visit poll_path(poll)
|
|
|
|
|
@@ -149,7 +168,11 @@ feature 'Polls' do
|
|
|
|
|
scenario 'Level 2 users reading a same-geozone poll' do
|
|
|
|
|
poll.update(geozone_restricted: true)
|
|
|
|
|
poll.geozones << geozone
|
|
|
|
|
create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
|
|
|
|
|
|
|
|
|
question = create(:poll_question, poll: poll)
|
|
|
|
|
answer1 = create(:poll_question_answer, question: question, title: 'Han Solo')
|
|
|
|
|
answer2 = create(:poll_question_answer, question: question, title: 'Chewbacca')
|
|
|
|
|
|
|
|
|
|
login_as(create(:user, :level_two, geozone: geozone))
|
|
|
|
|
visit poll_path(poll)
|
|
|
|
|
|
|
|
|
|
@@ -158,7 +181,10 @@ feature 'Polls' do
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
scenario 'Level 2 users reading a all-geozones poll' do
|
|
|
|
|
create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
|
|
|
|
question = create(:poll_question, poll: poll)
|
|
|
|
|
answer1 = create(:poll_question_answer, question: question, title: 'Han Solo')
|
|
|
|
|
answer2 = create(:poll_question_answer, question: question, title: 'Chewbacca')
|
|
|
|
|
|
|
|
|
|
login_as(create(:user, :level_two))
|
|
|
|
|
visit poll_path(poll)
|
|
|
|
|
|
|
|
|
|
@@ -167,7 +193,9 @@ feature 'Polls' do
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
scenario 'Level 2 users who have already answered' do
|
|
|
|
|
question = create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
|
|
|
|
question = create(:poll_question, poll: poll)
|
|
|
|
|
answer1 = create(:poll_question_answer, question: question, title: 'Han Solo')
|
|
|
|
|
answer2 = create(:poll_question_answer, question: question, title: 'Chewbacca')
|
|
|
|
|
user = create(:user, :level_two)
|
|
|
|
|
create(:poll_answer, question: question, author: user, answer: 'Chewbacca')
|
|
|
|
|
|
|
|
|
|
@@ -182,7 +210,11 @@ feature 'Polls' do
|
|
|
|
|
scenario 'Level 2 users answering', :js do
|
|
|
|
|
poll.update(geozone_restricted: true)
|
|
|
|
|
poll.geozones << geozone
|
|
|
|
|
create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
|
|
|
|
|
|
|
|
|
question = create(:poll_question, poll: poll)
|
|
|
|
|
answer1 = create(:poll_question_answer, question: question, title: 'Han Solo')
|
|
|
|
|
answer2 = create(:poll_question_answer, question: question, title: 'Chewbacca')
|
|
|
|
|
|
|
|
|
|
user = create(:user, :level_two, geozone: geozone)
|
|
|
|
|
|
|
|
|
|
login_as user
|
|
|
|
|
@@ -197,7 +229,11 @@ feature 'Polls' do
|
|
|
|
|
scenario 'Level 2 users changing answer', :js do
|
|
|
|
|
poll.update(geozone_restricted: true)
|
|
|
|
|
poll.geozones << geozone
|
|
|
|
|
create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
|
|
|
|
|
|
|
|
|
question = create(:poll_question, poll: poll)
|
|
|
|
|
answer1 = create(:poll_question_answer, question: question, title: 'Han Solo')
|
|
|
|
|
answer2 = create(:poll_question_answer, question: question, title: 'Chewbacca')
|
|
|
|
|
|
|
|
|
|
user = create(:user, :level_two, geozone: geozone)
|
|
|
|
|
|
|
|
|
|
login_as user
|
|
|
|
|
|