From 0121e57fd020da71d5ed30cf7968364b5c92072d Mon Sep 17 00:00:00 2001 From: taitus Date: Fri, 29 Nov 2024 15:56:20 +0100 Subject: [PATCH] Render more info link in management component --- .../layout/cookies_consent/banner_component.rb | 4 ---- .../layout/cookies_consent/base_component.rb | 4 ++++ .../cookies_consent/management_component.html.erb | 3 +++ .../cookies_consent/management_component_spec.rb | 14 +++++++++++++- 4 files changed, 20 insertions(+), 5 deletions(-) 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.title") %>

<%= 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