require "rails_helper" describe "Admin collaborative legislation", :admin do 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("No") end end scenario "Selecting legislation proposals" do proposal = create(:legislation_proposal, title: "Add more accessibility tests") visit admin_legislation_process_proposals_path(proposal.legislation_process_id) click_button "Select Add more accessibility tests" within "#legislation_proposal_#{proposal.id}" do expect(page).to have_content "Yes" end end scenario "Sorting legislation proposals by title" 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) click_link "Sort by title" 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" 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) click_link "Sort by total supports" 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" 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) click_link "Sort by ID" 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