diff --git a/app/components/layout/top_links_component.html.erb b/app/components/layout/top_links_component.html.erb index 7a5445ffc..0cc91b000 100644 --- a/app/components/layout/top_links_component.html.erb +++ b/app/components/layout/top_links_component.html.erb @@ -1,3 +1,3 @@ diff --git a/app/components/layout/top_links_component.rb b/app/components/layout/top_links_component.rb index 6d03e4430..ad45468c5 100644 --- a/app/components/layout/top_links_component.rb +++ b/app/components/layout/top_links_component.rb @@ -1,3 +1,13 @@ class Layout::TopLinksComponent < ApplicationComponent delegate :content_block, to: :helpers + + def render? + top_links_content_block.present? + end + + private + + def top_links_content_block + content_block("top_links", I18n.locale) + end end diff --git a/spec/components/layout/top_links_component_spec.rb b/spec/components/layout/top_links_component_spec.rb new file mode 100644 index 000000000..734258129 --- /dev/null +++ b/spec/components/layout/top_links_component_spec.rb @@ -0,0 +1,19 @@ +require "rails_helper" + +describe Layout::TopLinksComponent, type: :component do + describe "#render?" do + it "renders when a content block is defined" do + create(:site_customization_content_block, name: "top_links") + + render_inline Layout::TopLinksComponent.new + + expect(page).to have_css "ul" + end + + it "does not render when no content block is defined" do + render_inline Layout::TopLinksComponent.new + + expect(page).not_to have_css "ul" + end + end +end