diff --git a/app/components/budgets/investments/form_component.html.erb b/app/components/budgets/investments/form_component.html.erb index e76e567c5..3410ddcb6 100644 --- a/app/components/budgets/investments/form_component.html.erb +++ b/app/components/budgets/investments/form_component.html.erb @@ -84,7 +84,7 @@ <%= render SDG::RelatedListSelectorComponent.new(f) %> - <% unless current_user.manager? %> + <% unless current_user.manager? || investment.persisted? %>
<%= f.check_box :terms_of_service, title: t("form.accept_terms_title"), diff --git a/spec/components/budgets/investments/form_component_spec.rb b/spec/components/budgets/investments/form_component_spec.rb new file mode 100644 index 000000000..8e6bcfb11 --- /dev/null +++ b/spec/components/budgets/investments/form_component_spec.rb @@ -0,0 +1,36 @@ +require "rails_helper" + +describe Budgets::Investments::FormComponent, type: :component do + include Rails.application.routes.url_helpers + + let(:budget) { create(:budget) } + + before do + allow(controller).to receive(:current_user).and_return(create(:user)) + allow(request).to receive(:path_parameters).and_return(budget_id: budget.id) + 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 +end diff --git a/spec/system/budgets/investments_spec.rb b/spec/system/budgets/investments_spec.rb index 60b056d95..87a55a069 100644 --- a/spec/system/budgets/investments_spec.rb +++ b/spec/system/budgets/investments_spec.rb @@ -633,7 +633,6 @@ describe "Budget Investments" do click_link("Edit", match: :first) fill_in "Title", with: "Park improvements" - check "budget_investment_terms_of_service" click_button "Update Investment" @@ -651,7 +650,6 @@ describe "Budget Investments" do visit user_path(daniel, filter: "budget_investments") click_link("Edit", match: :first) fill_in "Title", with: "" - check "budget_investment_terms_of_service" click_button "Update Investment"