From 0dd77bcf52a67c23b007de193944869a1e0d60fa Mon Sep 17 00:00:00 2001 From: Suzanne Aitchison Date: Tue, 1 Feb 2022 14:06:51 +0000 Subject: [PATCH] Fixes for home nav link positioning (#16381) * Add new DUS to fix home nav link positioning * fix bug in local db seeding --- ...309_update_home_navigation_link_position.rb | 14 ++++++++++++++ lib/tasks/add_navigation_links.rake | 1 + ...pdate_home_navigation_link_position_spec.rb | 18 ++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 lib/data_update_scripts/20220201114309_update_home_navigation_link_position.rb create mode 100644 spec/lib/data_update_scripts/update_home_navigation_link_position_spec.rb diff --git a/lib/data_update_scripts/20220201114309_update_home_navigation_link_position.rb b/lib/data_update_scripts/20220201114309_update_home_navigation_link_position.rb new file mode 100644 index 000000000..5c45b22aa --- /dev/null +++ b/lib/data_update_scripts/20220201114309_update_home_navigation_link_position.rb @@ -0,0 +1,14 @@ +module DataUpdateScripts + class UpdateHomeNavigationLinkPosition + def run + NavigationLink.create_or_update_by_identity( + name: "Home", + url: URL.url("/"), + icon: File.read(Rails.root.join("app/assets/images/twemoji/house.svg")), + display_only_when_signed_in: false, + position: 1, + section: :default, + ) + end + end +end diff --git a/lib/tasks/add_navigation_links.rake b/lib/tasks/add_navigation_links.rake index ba6b1b45e..19c268e1a 100644 --- a/lib/tasks/add_navigation_links.rake +++ b/lib/tasks/add_navigation_links.rake @@ -128,6 +128,7 @@ namespace :navigation_links do base_url = "#{protocol}#{domain}".freeze NavigationLink.create_or_update_by_identity( + url: "/", name: "Home", icon: home_icon, display_only_when_signed_in: false, diff --git a/spec/lib/data_update_scripts/update_home_navigation_link_position_spec.rb b/spec/lib/data_update_scripts/update_home_navigation_link_position_spec.rb new file mode 100644 index 000000000..ef4ed8cc8 --- /dev/null +++ b/spec/lib/data_update_scripts/update_home_navigation_link_position_spec.rb @@ -0,0 +1,18 @@ +require "rails_helper" +require Rails.root.join( + "lib/data_update_scripts/20220201114309_update_home_navigation_link_position.rb", +) + +describe DataUpdateScripts::UpdateHomeNavigationLinkPosition do + it "creates a home navigation link when it doesn't already exist" do + expect do + described_class.new.run + end.to change { NavigationLink.exists?(url: "/", name: "Home", position: 1) }.from(false).to(true) + end + + it "updates any existing home navigation link to have position 1" do + link = create(:navigation_link, url: "/", name: "Home", position: 4) + described_class.new.run + expect(link.reload.position).to eq(1) + end +end