require "rails_helper"

describe Budgets::Investments::FormComponent do
  include Rails.application.routes.url_helpers

  let(:budget) { create(:budget) }
  before { sign_in(create(:user)) }

  around do |example|
    with_request_url(new_budget_investment_path(budget)) { example.run }
  end

  describe "accept terms of services field" do
    it "is shown for new investments" do
      investment = build(:budget_investment, budget: budget)

      render_inline Budgets::Investments::FormComponent.new(
        investment,
        url: budget_investments_path(budget)
      )

      expect(page).to have_field "I agree to the Privacy Policy and the Terms and conditions of use"
    end

    it "is not shown for existing investments" do
      investment = create(:budget_investment, budget: budget)

      render_inline Budgets::Investments::FormComponent.new(
        investment,
        url: budget_investment_path(budget, investment)
      )

      expect(page).not_to have_field "I agree to the Privacy Policy and the Terms and conditions of use"
    end
  end

  describe "map" do
    it "renders a button to remove the map marker" do
      Setting["feature.map"] = true

      render_inline Budgets::Investments::FormComponent.new(
        budget.investments.new,
        url: budget_investments_path(budget)
      )

      expect(page).to have_button "Remove map marker"
    end
  end
end
