Files
nairobi/spec/system/admin/budgets_wizard/phases_spec.rb
Javi Martín dbca3b5342 Move admin menu methods to the component
This way we finish what we started in commit 1046ec5e7, making the menu
easier to customize.
2023-01-12 13:45:10 +01:00

113 lines
3.4 KiB
Ruby

require "rails_helper"
describe "Budgets wizard, phases step", :admin do
let(:budget) { create(:budget, :drafting) }
let!(:heading) { create(:budget_heading, budget: budget) }
describe "Index" do
scenario "back to a previous step" do
heading.update!(name: "Main Park")
visit admin_budgets_wizard_budget_budget_phases_path(budget)
within "#side_menu" do
expect(page).to have_css "[aria-current]", exact_text: "Participatory budgets"
end
click_link "Go back to headings"
expect(page).to have_css "tr", text: "Main Park"
expect(page).to have_css ".creation-timeline"
end
scenario "Enable and disable phases" do
visit admin_budgets_wizard_budget_budget_phases_path(budget)
within "tr", text: "Information" do
expect(page).to have_content "Yes"
click_button "Enable Information phase"
expect(page).to have_content "No"
expect(page).not_to have_content "Yes"
end
within "tr", text: "Reviewing voting" do
expect(page).to have_content "Yes"
click_button "Enable Reviewing voting phase"
expect(page).to have_content "No"
expect(page).not_to have_content "Yes"
end
click_link "Finish"
expect(page).to have_css "section h3", exact_text: "Phases"
within "tr", text: "Information" do
expect(page).to have_content "No"
end
within "tr", text: "Reviewing voting" do
expect(page).to have_content "No"
end
within "tr", text: "Accepting projects" do
expect(page).to have_content "Yes"
end
within "tr", text: "Voting projects" do
expect(page).to have_content "Yes"
end
end
end
describe "Edit" do
scenario "update phase" do
visit admin_budgets_wizard_budget_budget_phases_path(budget)
expect(page).to have_css ".creation-timeline"
within("tr", text: "Selecting projects") { click_link "Edit" }
fill_in "Name", with: "Choosing projects"
click_button "Save changes"
expect(page).to have_content "Changes saved"
expect(page).to have_css ".creation-timeline"
within_table("Phases") { expect(page).to have_content "Choosing projects" }
end
scenario "submit the form with errors and then without errors" do
phase = budget.phases.accepting
visit edit_admin_budgets_wizard_budget_budget_phase_path(budget, phase)
fill_in "Name", with: ""
click_button "Save changes"
expect(page).to have_css "#error_explanation"
expect(page).to have_css ".creation-timeline"
fill_in "Name", with: "Welcoming projects"
click_button "Save changes"
expect(page).to have_content "Changes saved"
expect(page).to have_css ".creation-timeline"
within_table("Phases") { expect(page).to have_content "Welcoming projects" }
end
scenario "update phase in single heading budget" do
visit admin_budgets_wizard_budget_budget_phases_path(budget, mode: "single")
within("tr", text: "Selecting projects") { click_link "Edit" }
fill_in "Name", with: "Choosing projects"
click_button "Save changes"
expect(page).to have_content "Changes saved"
expect(page).to have_css ".creation-timeline"
within_table("Phases") { expect(page).to have_content "Choosing projects" }
expect(page).to have_link "Go back to edit heading"
end
end
end