Fixes failing specs
This commit is contained in:
@@ -18,7 +18,8 @@ feature 'Admin poll questions' do
|
||||
|
||||
scenario 'Show' do
|
||||
geozone = create(:geozone)
|
||||
question = create(:poll_question, geozone_ids: geozone.id)
|
||||
poll = create(:poll, geozone_restricted: true, geozone_ids: [geozone.id])
|
||||
question = create(:poll_question, poll: poll)
|
||||
|
||||
visit admin_question_path(question)
|
||||
|
||||
@@ -27,7 +28,6 @@ feature 'Admin poll questions' do
|
||||
expect(page).to have_content(question.summary)
|
||||
expect(page).to have_content(question.author.name)
|
||||
expect(page).to have_content(question.valid_answers.join(" "))
|
||||
expect(page).to have_content(geozone.name)
|
||||
end
|
||||
|
||||
scenario 'Create' do
|
||||
@@ -53,7 +53,6 @@ feature 'Admin poll questions' do
|
||||
end
|
||||
|
||||
scenario 'Create from successful proposal index' do
|
||||
geozones = create_list(:geozone, 3)
|
||||
proposal = create(:proposal, :successful)
|
||||
|
||||
visit proposals_path
|
||||
|
||||
@@ -82,7 +82,9 @@ feature 'Polls' do
|
||||
end
|
||||
|
||||
scenario 'Level 1 users' do
|
||||
create(:poll_question, poll: poll, geozone_ids: [geozone.id], valid_answers: 'Han Solo, Chewbacca')
|
||||
poll.update(geozone_restricted: true)
|
||||
poll.geozones << geozone
|
||||
create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
||||
login_as(create(:user, geozone: geozone))
|
||||
visit poll_path(poll)
|
||||
|
||||
@@ -96,8 +98,9 @@ feature 'Polls' do
|
||||
end
|
||||
|
||||
scenario 'Level 2 users in an incoming poll' do
|
||||
incoming_poll = create(:poll, :incoming)
|
||||
create(:poll_question, poll: incoming_poll, geozone_ids: [geozone.id], valid_answers: 'Rey, Finn')
|
||||
incoming_poll = create(:poll, :incoming, geozone_restricted: true)
|
||||
incoming_poll.geozones << geozone
|
||||
create(:poll_question, poll: incoming_poll, valid_answers: 'Rey, Finn')
|
||||
login_as(create(:user, :level_two, geozone: geozone))
|
||||
|
||||
visit poll_path(incoming_poll)
|
||||
@@ -111,8 +114,9 @@ feature 'Polls' do
|
||||
end
|
||||
|
||||
scenario 'Level 2 users in an expired poll' do
|
||||
expired_poll = create(:poll, :expired)
|
||||
create(:poll_question, poll: expired_poll, geozone_ids: [geozone.id], valid_answers: 'Luke, Leia')
|
||||
expired_poll = create(:poll, :expired, geozone_restricted: true)
|
||||
expired_poll.geozones << geozone
|
||||
create(:poll_question, poll: expired_poll, valid_answers: 'Luke, Leia')
|
||||
login_as(create(:user, :level_two, geozone: geozone))
|
||||
|
||||
visit poll_path(expired_poll)
|
||||
@@ -126,21 +130,23 @@ feature 'Polls' do
|
||||
end
|
||||
|
||||
scenario 'Level 2 users in a poll with questions for a geozone which is not theirs' do
|
||||
create(:poll_question, poll: poll, geozone_ids: [], valid_answers: 'Vader, Palpatine')
|
||||
poll.update(geozone_restricted: true)
|
||||
poll.geozones << create(:geozone)
|
||||
create(:poll_question, poll: poll, valid_answers: 'Vader, Palpatine')
|
||||
login_as(create(:user, :level_two))
|
||||
|
||||
visit poll_path(poll)
|
||||
|
||||
expect(page).to have_content("You can't answers the following 1 questions because are not available in your geozone.")
|
||||
|
||||
expect(page).to have_content('Vader')
|
||||
expect(page).to have_content('Palpatine')
|
||||
expect(page).to_not have_link('Vader')
|
||||
expect(page).to_not have_link('Palpatine')
|
||||
end
|
||||
|
||||
scenario 'Level 2 users reading a same-geozone question' do
|
||||
create(:poll_question, poll: poll, geozone_ids: [geozone.id], valid_answers: 'Han Solo, Chewbacca')
|
||||
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')
|
||||
login_as(create(:user, :level_two, geozone: geozone))
|
||||
visit poll_path(poll)
|
||||
|
||||
@@ -148,9 +154,9 @@ feature 'Polls' do
|
||||
expect(page).to have_link('Chewbacca')
|
||||
end
|
||||
|
||||
scenario 'Level 2 users reading a all-geozones question' do
|
||||
create(:poll_question, poll: poll, all_geozones: true, valid_answers: 'Han Solo, Chewbacca')
|
||||
login_as(create(:user, :level_two, geozone: geozone))
|
||||
scenario 'Level 2 users reading a all-geozones poll' do
|
||||
create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
||||
login_as(create(:user, :level_two))
|
||||
visit poll_path(poll)
|
||||
|
||||
expect(page).to have_link('Han Solo')
|
||||
@@ -158,8 +164,8 @@ feature 'Polls' do
|
||||
end
|
||||
|
||||
scenario 'Level 2 users who have already answered' do
|
||||
question = create(:poll_question, poll: poll, geozone_ids:[geozone.id], valid_answers: 'Han Solo, Chewbacca')
|
||||
user = create(:user, :level_two, geozone: geozone)
|
||||
question = create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
||||
user = create(:user, :level_two)
|
||||
create(:poll_partial_result, question: question, author: user, answer: 'Chewbacca')
|
||||
|
||||
login_as user
|
||||
@@ -171,7 +177,9 @@ feature 'Polls' do
|
||||
end
|
||||
|
||||
scenario 'Level 2 users answering', :js do
|
||||
create(:poll_question, poll: poll, geozone_ids: [geozone.id], valid_answers: 'Han Solo, Chewbacca')
|
||||
poll.update(geozone_restricted: true)
|
||||
poll.geozones << geozone
|
||||
create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
||||
user = create(:user, :level_two, geozone: geozone)
|
||||
login_as user
|
||||
visit poll_path(poll)
|
||||
|
||||
@@ -14,7 +14,7 @@ feature 'Poll Questions' do
|
||||
|
||||
context 'Answering' do
|
||||
let(:geozone) { create(:geozone) }
|
||||
|
||||
let(:poll) { create(:poll, geozone_restricted: true, geozone_ids: [geozone.id]) }
|
||||
scenario 'Non-logged in users' do
|
||||
question = create(:poll_question, valid_answers: 'Han Solo, Chewbacca')
|
||||
|
||||
@@ -29,7 +29,7 @@ feature 'Poll Questions' do
|
||||
end
|
||||
|
||||
scenario 'Level 1 users' do
|
||||
question = create(:poll_question, geozone_ids: [geozone.id], valid_answers: 'Han Solo, Chewbacca')
|
||||
question = create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
||||
|
||||
login_as(create(:user, geozone: geozone))
|
||||
visit question_path(question)
|
||||
@@ -43,9 +43,11 @@ feature 'Poll Questions' do
|
||||
end
|
||||
|
||||
scenario 'Level 2 users in an poll question for a geozone which is not theirs' do
|
||||
question = create(:poll_question, geozone_ids: [], valid_answers: 'Vader, Palpatine')
|
||||
|
||||
login_as(create(:user, :level_two))
|
||||
other_poll = create(:poll, geozone_restricted: true, geozone_ids: [create(:geozone).id])
|
||||
question = create(:poll_question, poll: other_poll, valid_answers: 'Vader, Palpatine')
|
||||
|
||||
login_as(create(:user, :level_two, geozone: geozone))
|
||||
visit question_path(question)
|
||||
|
||||
expect(page).to have_content('Vader')
|
||||
@@ -55,7 +57,7 @@ feature 'Poll Questions' do
|
||||
end
|
||||
|
||||
scenario 'Level 2 users who can answer' do
|
||||
question = create(:poll_question, geozone_ids: [geozone.id], valid_answers: 'Han Solo, Chewbacca')
|
||||
question = create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
||||
|
||||
login_as(create(:user, :level_two, geozone: geozone))
|
||||
visit question_path(question)
|
||||
@@ -65,7 +67,7 @@ feature 'Poll Questions' do
|
||||
end
|
||||
|
||||
scenario 'Level 2 users who have already answered' do
|
||||
question = create(:poll_question, geozone_ids:[geozone.id], valid_answers: 'Han Solo, Chewbacca')
|
||||
question = create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
||||
|
||||
user = create(:user, :level_two, geozone: geozone)
|
||||
create(:poll_partial_result, question: question, author: user, answer: 'Chewbacca')
|
||||
@@ -79,7 +81,7 @@ feature 'Poll Questions' do
|
||||
end
|
||||
|
||||
scenario 'Level 2 users answering', :js do
|
||||
question = create(:poll_question, geozone_ids: [geozone.id], valid_answers: 'Han Solo, Chewbacca')
|
||||
question = create(:poll_question, poll: poll, valid_answers: 'Han Solo, Chewbacca')
|
||||
user = create(:user, :level_two, geozone: geozone)
|
||||
|
||||
login_as user
|
||||
|
||||
@@ -27,19 +27,26 @@ describe "Abilities::Common" do
|
||||
|
||||
let(:current_poll) { create(:poll) }
|
||||
let(:incoming_poll) { create(:poll, :incoming) }
|
||||
let(:incoming_poll_from_own_geozone) { create(:poll, :incoming, geozone_restricted: true, geozones: [geozone]) }
|
||||
let(:incoming_poll_from_other_geozone) { create(:poll, :incoming, geozone_restricted: true, geozones: [create(:geozone)]) }
|
||||
let(:expired_poll) { create(:poll, :expired) }
|
||||
let(:expired_poll_from_own_geozone) { create(:poll, :expired, geozone_restricted: true, geozones: [geozone]) }
|
||||
let(:expired_poll_from_other_geozone) { create(:poll, :expired, geozone_restricted: true, geozones: [create(:geozone)]) }
|
||||
let(:poll) { create(:poll, geozone_restricted: false) }
|
||||
let(:poll_from_own_geozone) { create(:poll, geozone_restricted: true, geozones: [geozone]) }
|
||||
let(:poll_from_other_geozone) { create(:poll, geozone_restricted: true, geozones: [create(:geozone)]) }
|
||||
|
||||
let(:poll_question_from_own_geozone) { create(:poll_question, geozones: [geozone]) }
|
||||
let(:poll_question_from_other_geozone) { create(:poll_question, geozones: [create(:geozone)]) }
|
||||
let(:poll_question_from_all_geozones) { create(:poll_question, all_geozones: true) }
|
||||
let(:poll_question_from_own_geozone) { create(:poll_question, poll: poll_from_own_geozone) }
|
||||
let(:poll_question_from_other_geozone) { create(:poll_question, poll: poll_from_other_geozone) }
|
||||
let(:poll_question_from_all_geozones) { create(:poll_question, poll: poll) }
|
||||
|
||||
let(:expired_poll_question_from_own_geozone) { create(:poll_question, poll: expired_poll, geozones: [geozone]) }
|
||||
let(:expired_poll_question_from_other_geozone) { create(:poll_question, poll: expired_poll, geozones: [create(:geozone)]) }
|
||||
let(:expired_poll_question_from_all_geozones) { create(:poll_question, poll: expired_poll, all_geozones: true) }
|
||||
let(:expired_poll_question_from_own_geozone) { create(:poll_question, poll: expired_poll_from_own_geozone) }
|
||||
let(:expired_poll_question_from_other_geozone) { create(:poll_question, poll: expired_poll_from_other_geozone) }
|
||||
let(:expired_poll_question_from_all_geozones) { create(:poll_question, poll: expired_poll) }
|
||||
|
||||
let(:incoming_poll_question_from_own_geozone) { create(:poll_question, poll: incoming_poll, geozones: [geozone]) }
|
||||
let(:incoming_poll_question_from_other_geozone) { create(:poll_question, poll: incoming_poll, geozones: [create(:geozone)]) }
|
||||
let(:incoming_poll_question_from_all_geozones) { create(:poll_question, poll: incoming_poll, all_geozones: true) }
|
||||
let(:incoming_poll_question_from_own_geozone) { create(:poll_question, poll: incoming_poll_from_own_geozone) }
|
||||
let(:incoming_poll_question_from_other_geozone) { create(:poll_question, poll: incoming_poll_from_other_geozone) }
|
||||
let(:incoming_poll_question_from_all_geozones) { create(:poll_question, poll: incoming_poll) }
|
||||
|
||||
it { should be_able_to(:index, Debate) }
|
||||
it { should be_able_to(:show, debate) }
|
||||
|
||||
@@ -20,7 +20,6 @@ RSpec.describe Poll::Question, type: :model do
|
||||
expect(q.author_visible_name).to eq(p.author.name)
|
||||
expect(q.proposal_id).to eq(p.id)
|
||||
expect(q.title).to eq(p.title)
|
||||
expect(q.all_geozones).to be true
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user