diff --git a/app/components/layout/cookies_consent/banner_component.rb b/app/components/layout/cookies_consent/banner_component.rb index 5002902a8..43ffe341b 100644 --- a/app/components/layout/cookies_consent/banner_component.rb +++ b/app/components/layout/cookies_consent/banner_component.rb @@ -5,10 +5,6 @@ class Layout::CookiesConsent::BannerComponent < Layout::CookiesConsent::BaseComp super && cookies_consent_unset? end - def more_info_link - Setting["cookies_consent.more_info_link"] - end - private def cookies_consent_unset? diff --git a/app/components/layout/cookies_consent/base_component.rb b/app/components/layout/cookies_consent/base_component.rb index c646b7f83..41b32eee7 100644 --- a/app/components/layout/cookies_consent/base_component.rb +++ b/app/components/layout/cookies_consent/base_component.rb @@ -2,4 +2,8 @@ class Layout::CookiesConsent::BaseComponent < ApplicationComponent def render? feature?(:cookies_consent) end + + def more_info_link + Setting["cookies_consent.more_info_link"] + end end diff --git a/app/components/layout/cookies_consent/management_component.html.erb b/app/components/layout/cookies_consent/management_component.html.erb index 7ea903510..99211e52f 100644 --- a/app/components/layout/cookies_consent/management_component.html.erb +++ b/app/components/layout/cookies_consent/management_component.html.erb @@ -6,6 +6,9 @@
<%= t("cookies_management.description") %>
+ <% if more_info_link.present? %> +
<%= link_to t("cookies_consent.more_info_link"), more_info_link, target: "_blank" %>
+ <% end %><%= t("cookies_management.essentials.description") %>
diff --git a/spec/components/layout/cookies_consent/management_component_spec.rb b/spec/components/layout/cookies_consent/management_component_spec.rb index f7a6bc2f1..5188ee0ae 100644 --- a/spec/components/layout/cookies_consent/management_component_spec.rb +++ b/spec/components/layout/cookies_consent/management_component_spec.rb @@ -11,12 +11,24 @@ describe Layout::CookiesConsent::ManagementComponent do expect(page).not_to be_rendered end - it "is rendered with essential cookies content when the cookies consent is enabled" do + it "is rendered when the cookies consent is enabled" do + Setting["cookies_consent.more_info_link"] = "/cookies_policy" + render_inline Layout::CookiesConsent::ManagementComponent.new expect(page).to be_rendered expect(page).to have_css "h2", text: "Cookies management" + expect(page).to have_link "More information about cookies", href: "/cookies_policy" expect(page).to have_css "h3", text: "Essential cookies" expect(page).to have_button "Accept essential cookies" end + + it "does not render a link when the setting `cookies_consent.more_info_link` is not defined" do + Setting["cookies_consent.more_info_link"] = "" + + render_inline Layout::CookiesConsent::ManagementComponent.new + + expect(page).not_to have_link "More information about cookies" + expect(page).to be_rendered + end end