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 @@
- <%= raw content_block("top_links", I18n.locale) %>
+ <%= raw top_links_content_block %>
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