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