require "rails_helper"

describe Admin::Budgets::ActionsComponent, :admin do
  include Rails.application.routes.url_helpers

  let(:budget) { create(:budget) }
  let(:component) { Admin::Budgets::ActionsComponent.new(budget) }

  describe "Create booths button" do
    it "is rendered for budgets without polls" do
      render_inline component

      expect(page.find("form[action*='polls'][method='post']")).to have_button "Create booths"
    end

    it "is not rendered for finished budgets without polls" do
      budget.update!(phase: "finished")

      render_inline component

      expect(page).not_to have_css "form[action*='polls']"
      expect(page).not_to have_button "Create booths"
    end

    it "is not rendered for budgets with polls" do
      budget.poll = create(:poll, budget: budget)

      render_inline component

      expect(page).not_to have_css "form[action*='polls']"
      expect(page).not_to have_button "Create booths"
    end

    it "is disabled when the polls feature is disabled" do
      Setting["process.polls"] = false

      render_inline component

      expect(page).to have_button "Create booths", disabled: true
      expect(page).to have_link href: admin_settings_path(anchor: "tab-participation-processes")
    end

    it "is enabled when the polls feature is enabled" do
      Setting["process.polls"] = true

      render_inline component

      expect(page).to have_button "Create booths", disabled: false
      expect(page).not_to have_link href: admin_settings_path(anchor: "tab-participation-processes")
    end
  end
end
