Fixes failing specs

This commit is contained in:
kikito
2017-01-24 18:10:41 +01:00
parent 6ed73f34b6
commit 15b531f068
5 changed files with 54 additions and 39 deletions

View File

@@ -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
@@ -115,4 +114,4 @@ feature 'Admin poll questions' do
pending "Mark all city by default when creating a poll question from a successful proposal"
end
end

View File

@@ -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)
@@ -183,4 +191,4 @@ feature 'Polls' do
end
end
end
end

View File

@@ -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
@@ -92,4 +94,4 @@ feature 'Poll Questions' do
end
end
end
end

View File

@@ -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) }

View File

@@ -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