We get rid of database cleaner, and JavaScript tests are faster because between tests we now rollback transactions instead of truncating the database.
83 lines
3.5 KiB
Ruby
83 lines
3.5 KiB
Ruby
require "rails_helper"
|
|
|
|
describe "Admin collaborative legislation" do
|
|
before do
|
|
admin = create(:administrator)
|
|
login_as(admin.user)
|
|
end
|
|
|
|
context "Index" do
|
|
scenario "Displaying legislation proposals" do
|
|
proposal = create(:legislation_proposal, cached_votes_score: 10)
|
|
|
|
visit admin_legislation_process_proposals_path(proposal.legislation_process_id)
|
|
|
|
within "#legislation_proposal_#{proposal.id}" do
|
|
expect(page).to have_content(proposal.title)
|
|
expect(page).to have_content(proposal.id)
|
|
expect(page).to have_content(proposal.cached_votes_score)
|
|
expect(page).to have_content("Select")
|
|
end
|
|
end
|
|
|
|
scenario "Selecting legislation proposals", :js do
|
|
proposal = create(:legislation_proposal, cached_votes_score: 10)
|
|
|
|
visit admin_legislation_process_proposals_path(proposal.legislation_process_id)
|
|
click_link "Select"
|
|
|
|
within "#legislation_proposal_#{proposal.id}" do
|
|
expect(page).to have_content("Selected")
|
|
end
|
|
end
|
|
|
|
scenario "Sorting legislation proposals by title", js: true do
|
|
process = create(:legislation_process)
|
|
create(:legislation_proposal, title: "bbbb", legislation_process_id: process.id)
|
|
create(:legislation_proposal, title: "aaaa", legislation_process_id: process.id)
|
|
create(:legislation_proposal, title: "cccc", legislation_process_id: process.id)
|
|
|
|
visit admin_legislation_process_proposals_path(process.id)
|
|
select "Title", from: "order-selector-participation"
|
|
|
|
within("#legislation_proposals_list") do
|
|
within all(".legislation_proposal")[0] { expect(page).to have_content("aaaa") }
|
|
within all(".legislation_proposal")[1] { expect(page).to have_content("bbbb") }
|
|
within all(".legislation_proposal")[2] { expect(page).to have_content("cccc") }
|
|
end
|
|
end
|
|
|
|
scenario "Sorting legislation proposals by supports", js: true do
|
|
process = create(:legislation_process)
|
|
create(:legislation_proposal, cached_votes_score: 10, legislation_process_id: process.id)
|
|
create(:legislation_proposal, cached_votes_score: 30, legislation_process_id: process.id)
|
|
create(:legislation_proposal, cached_votes_score: 20, legislation_process_id: process.id)
|
|
|
|
visit admin_legislation_process_proposals_path(process.id)
|
|
select "Total supports", from: "order-selector-participation"
|
|
|
|
within("#legislation_proposals_list") do
|
|
within all(".legislation_proposal")[0] { expect(page).to have_content("30") }
|
|
within all(".legislation_proposal")[1] { expect(page).to have_content("20") }
|
|
within all(".legislation_proposal")[2] { expect(page).to have_content("10") }
|
|
end
|
|
end
|
|
|
|
scenario "Sorting legislation proposals by Id", js: true do
|
|
process = create(:legislation_process)
|
|
proposal1 = create(:legislation_proposal, title: "bbbb", legislation_process_id: process.id)
|
|
proposal2 = create(:legislation_proposal, title: "aaaa", legislation_process_id: process.id)
|
|
proposal3 = create(:legislation_proposal, title: "cccc", legislation_process_id: process.id)
|
|
|
|
visit admin_legislation_process_proposals_path(process.id, order: :title)
|
|
select "Id", from: "order-selector-participation"
|
|
|
|
within("#legislation_proposals_list") do
|
|
within all(".legislation_proposal")[0] { expect(page).to have_content(proposal1.id) }
|
|
within all(".legislation_proposal")[1] { expect(page).to have_content(proposal2.id) }
|
|
within all(".legislation_proposal")[2] { expect(page).to have_content(proposal3.id) }
|
|
end
|
|
end
|
|
end
|
|
end
|