Files
nairobi/spec/features/admin/poll/polls_spec.rb
2016-11-14 13:57:16 +01:00

124 lines
2.6 KiB
Ruby

require 'rails_helper'
feature 'Admin polls' do
background do
admin = create(:administrator)
login_as(admin.user)
end
scenario 'Index empty' do
visit admin_root_path
within('#side_menu') do
click_link "Polls"
end
expect(page).to have_content "There are no polls"
end
scenario 'Index' do
3.times { create(:poll) }
visit admin_root_path
within('#side_menu') do
click_link "Polls"
end
expect(page).to have_css ".poll", count: 3
polls = Poll.all
polls.each do |poll|
within("#poll_#{poll.id}") do
expect(page).to have_content poll.name
end
end
expect(page).to_not have_content "There are no polls"
end
scenario 'Show' do
poll = create(:poll)
visit admin_polls_path
click_link poll.name
expect(page).to have_content poll.name
end
scenario "Create" do
visit admin_polls_path
click_link "Create poll"
fill_in "poll_name", with: "Upcoming poll"
click_button "Create poll"
expect(page).to have_content "Poll created successfully"
expect(page).to have_content "Upcoming poll"
end
scenario "Edit" do
poll = create(:poll)
visit admin_poll_path(poll)
click_link "Edit"
fill_in "poll_name", with: "Next Poll"
click_button "Update poll"
expect(page).to have_content "Poll updated successfully"
expect(page).to have_content "Next Poll"
end
scenario 'Edit from index' do
poll = create(:poll)
visit admin_polls_path
within("#poll_#{poll.id}") do
click_link "Edit"
end
expect(current_path).to eq(edit_admin_poll_path(poll))
end
context "Booths" do
context "Poll show" do
scenario "No booths" do
poll = create(:poll)
visit admin_poll_path(poll)
expect(page).to have_content "There are no booths in this poll."
end
scenario "Booth list" do
poll = create(:poll)
3.times { create(:poll_booth, poll: poll) }
visit admin_poll_path(poll)
expect(page).to have_css ".booth", count: 3
booths = Poll::Booth.all
booths.each do |booth|
within("#booth_#{booth.id}") do
expect(page).to have_content booth.name
expect(page).to have_content booth.location
end
end
expect(page).to_not have_content "There are no booths"
end
scenario "Add booth" do
poll = create(:poll)
visit admin_poll_path(poll)
click_link "Add booth"
expect(current_path).to eq(new_admin_poll_booth_path(poll))
expect(page).to have_content poll.name
end
end
end
end