From 6a179fc6fdf657b423ab9ab92c17ce72d865ebd5 Mon Sep 17 00:00:00 2001 From: nolanborz Date: Tue, 18 Mar 2025 11:14:02 +0900 Subject: [PATCH 1/2] Add if statement and rspec to remove my co-workers from org user dropdown --- Gemfile.lock | 2 +- app/views/layouts/_lte_navbar.html.erb | 8 +++++--- spec/system/navigation_system_spec.rb | 12 ++++++++++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 159ed3895d..f2ee4ef768 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -826,4 +826,4 @@ DEPENDENCIES webmock (~> 3.24) BUNDLED WITH - 2.6.5 + 2.6.6 diff --git a/app/views/layouts/_lte_navbar.html.erb b/app/views/layouts/_lte_navbar.html.erb index fa66552b8e..20fac86455 100644 --- a/app/views/layouts/_lte_navbar.html.erb +++ b/app/views/layouts/_lte_navbar.html.erb @@ -50,10 +50,12 @@ <%= "Switch to: #{role.resource&.name || "Super Admin"}" %> <% end %> <% end %> - <% if current_user.has_cached_role?(Role::ORG_ADMIN, current_organization) %> + <% if current_user.has_cached_role?(Role::ORG_ADMIN, current_organization) %> - <%= link_to users_path, class:"dropdown-item" do %> - My Co-Workers + <% if current_user.has_cached_role?(:partner) %> + <%= link_to users_path, class:"dropdown-item" do %> + My Co-Workers + <% end %> <% end %> <%= link_to organization_path, class:"dropdown-item" do %> My Organization diff --git a/spec/system/navigation_system_spec.rb b/spec/system/navigation_system_spec.rb index 93002fc8cb..dce5420632 100644 --- a/spec/system/navigation_system_spec.rb +++ b/spec/system/navigation_system_spec.rb @@ -52,6 +52,18 @@ end end end + it "dropdown menu does not show My Co-Workers" do + expect(user.has_role?(Role::ORG_ADMIN, user.organization)).to be true + expect(user.has_role?(:partner)).to be false + click_on user.display_name + puts "DROPDOWN LINKS:" + page.all(".dropdown-menu a").each do |link| + puts "- #{link.text.strip}" + end + + expect(page).not_to have_link("My Co-Workers") + expect(page).not_to have_content("My Co-Workers") + end end end From 96ae98eb2743e8509b6b482ad8122b699751ae6b Mon Sep 17 00:00:00 2001 From: nolanborz Date: Thu, 27 Mar 2025 14:03:21 +0900 Subject: [PATCH 2/2] Remove old test to fix lint, make new require test --- spec/requests/user_dropdown_requests_spec.rb | 19 +++++++++++++++++++ spec/system/navigation_system_spec.rb | 12 ------------ 2 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 spec/requests/user_dropdown_requests_spec.rb diff --git a/spec/requests/user_dropdown_requests_spec.rb b/spec/requests/user_dropdown_requests_spec.rb new file mode 100644 index 0000000000..f6e1a72913 --- /dev/null +++ b/spec/requests/user_dropdown_requests_spec.rb @@ -0,0 +1,19 @@ +RSpec.describe "UsernameDropdown", type: :request do + let(:organization) { create(:organization) } + + describe "My Co-Workers link visibility" do + context "when user does not have partner role" do + let(:user) { create(:user, organization: organization) } + + before do + user.add_role(Role::ORG_ADMIN, organization) + sign_in(user) + end + + it "does not show the My Co-Workers link" do + get dashboard_path + expect(response.body).not_to include("My Co-Workers") + end + end + end +end diff --git a/spec/system/navigation_system_spec.rb b/spec/system/navigation_system_spec.rb index dce5420632..93002fc8cb 100644 --- a/spec/system/navigation_system_spec.rb +++ b/spec/system/navigation_system_spec.rb @@ -52,18 +52,6 @@ end end end - it "dropdown menu does not show My Co-Workers" do - expect(user.has_role?(Role::ORG_ADMIN, user.organization)).to be true - expect(user.has_role?(:partner)).to be false - click_on user.display_name - puts "DROPDOWN LINKS:" - page.all(".dropdown-menu a").each do |link| - puts "- #{link.text.strip}" - end - - expect(page).not_to have_link("My Co-Workers") - expect(page).not_to have_content("My Co-Workers") - end end end