diff --git a/app/components/layout/footer_component.rb b/app/components/layout/footer_component.rb index 58278899b..77148401a 100644 --- a/app/components/layout/footer_component.rb +++ b/app/components/layout/footer_component.rb @@ -8,11 +8,15 @@ class Layout::FooterComponent < ApplicationComponent private def open_source_link - link_to(t("layouts.footer.open_source"), t("layouts.footer.open_source_url"), rel: "nofollow") + external_link_to(t("layouts.footer.open_source"), t("layouts.footer.open_source_url")) end def repository_link - link_to(t("layouts.footer.consul"), t("layouts.footer.consul_url"), rel: "nofollow") + external_link_to(t("layouts.footer.consul"), t("layouts.footer.consul_url")) + end + + def external_link_to(text, url) + link_to(text, url, rel: "nofollow external") end def allowed_link_attributes diff --git a/spec/components/layout/footer_component_spec.rb b/spec/components/layout/footer_component_spec.rb index d44e52e01..59cb2cf73 100644 --- a/spec/components/layout/footer_component_spec.rb +++ b/spec/components/layout/footer_component_spec.rb @@ -6,7 +6,9 @@ describe Layout::FooterComponent do render_inline Layout::FooterComponent.new page.find(".info") do |info| - expect(info).to have_css "a[rel=nofollow]", count: 2 + expect(info).to have_css "a", count: 2 + expect(info).to have_css "a[rel~=nofollow]", count: 2 + expect(info).to have_css "a[rel~=external]", count: 2 expect(info).not_to have_css "a[target]" end end