From 9609ba4268aa1ca1f6338be352f41ded984d54fc Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Fri, 1 Dec 2023 13:28:15 +1100 Subject: [PATCH] Don't show the banner if no ToS file uploaded --- app/helpers/admin/terms_of_service_helper.rb | 2 ++ spec/requests/spree/admin/overview_spec.rb | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/helpers/admin/terms_of_service_helper.rb b/app/helpers/admin/terms_of_service_helper.rb index 38683f1757..87b0db25bc 100644 --- a/app/helpers/admin/terms_of_service_helper.rb +++ b/app/helpers/admin/terms_of_service_helper.rb @@ -7,6 +7,8 @@ module Admin return false if Spree::Config.enterprises_require_tos == false + return false if TermsOfServiceFile.current.nil? + !accepted_tos? end diff --git a/spec/requests/spree/admin/overview_spec.rb b/spec/requests/spree/admin/overview_spec.rb index db3466371c..14f03d6498 100644 --- a/spec/requests/spree/admin/overview_spec.rb +++ b/spec/requests/spree/admin/overview_spec.rb @@ -13,7 +13,11 @@ describe "/admin", type: :request do describe "GET /admin" do before do - allow(TermsOfServiceFile).to receive(:updated_at).and_return(2.hours.ago) + mocked_tos = double(TermsOfServiceFile, updated_at: 2.hours.ago) + allow(TermsOfServiceFile).to receive(:current).and_return(mocked_tos) + # Mock current_url so we don't have to set up a complicated TermsOfServiceFile mock + # with attachement + allow(TermsOfServiceFile).to receive(:current_url).and_return("tmp/tos.pdf") end it "loads the dashboard page" do @@ -56,6 +60,16 @@ describe "/admin", type: :request do end end + context "when no ToS has been uploaded" do + it "doesn't show accept new ToS banner" do + allow(TermsOfServiceFile).to receive(:current).and_return(nil) + + get "/admin" + + expect(response.body).to_not include("Terms of Service have been updated") + end + end + context "when enterprises don't need to accept ToS" do before do Spree::Config.enterprises_require_tos = false