Browse Source

Works but helper is hard to test

pull/619/head
baarkerlounger 3 years ago
parent
commit
5737ab2f2d
  1. 10
      app/helpers/navigation_items_helper.rb
  2. 2
      app/views/layouts/application.html.erb
  3. 4
      spec/requests/users_controller_spec.rb

10
app/helpers/navigation_items_helper.rb

@ -1,17 +1,17 @@
module NavigationItemsHelper module NavigationItemsHelper
NavigationItem = Struct.new(:text, :href, :current, :classes) NavigationItem = Struct.new(:text, :href, :current, :classes)
def primary_items(current_user) def primary_items(current_user, user)
if current_user.support? if current_user.support?
[ [
NavigationItem.new("Organisations", organisations_path, organisation_current?), NavigationItem.new("Organisations", organisations_path, organisation_current?),
NavigationItem.new("Users", users_path, users_current?), NavigationItem.new("Users", users_path, users_current?(current_user, user)),
NavigationItem.new("Logs", case_logs_path, logs_current?), NavigationItem.new("Logs", case_logs_path, logs_current?),
] ]
else else
[ [
NavigationItem.new("Logs", case_logs_path, logs_current?), NavigationItem.new("Logs", case_logs_path, logs_current?),
NavigationItem.new("Users", users_organisation_path(current_user.organisation), users_current?), NavigationItem.new("Users", users_organisation_path(current_user.organisation), users_current?(current_user, user)),
NavigationItem.new("About your organisation", "/organisations/#{current_user.organisation.id}", organisation_current?), NavigationItem.new("About your organisation", "/organisations/#{current_user.organisation.id}", organisation_current?),
] ]
end end
@ -31,7 +31,9 @@ private
current?(controller, %w[case_logs form]) current?(controller, %w[case_logs form])
end end
def users_current? def users_current?(current_user, user)
return false if current_user == user
current?(controller, %w[users]) || current_action?(controller, "users") current?(controller, %w[users]) || current_action?(controller, "users")
end end

2
app/views/layouts/application.html.erb

@ -66,7 +66,7 @@
<% if !current_user.nil? %> <% if !current_user.nil? %>
<%= render PrimaryNavigationComponent.new( <%= render PrimaryNavigationComponent.new(
items: primary_items(current_user), items: primary_items(current_user, @user),
) %> ) %>
<% end %> <% end %>

4
spec/requests/users_controller_spec.rb

@ -357,6 +357,10 @@ RSpec.describe UsersController, type: :request do
expect(page).to have_link("Change", text: "are you a data protection officer?") expect(page).to have_link("Change", text: "are you a data protection officer?")
expect(page).to have_link("Change", text: "are you a key contact?") expect(page).to have_link("Change", text: "are you a key contact?")
end end
it "does not highlight the users navigation tab" do
expect(page).not_to have_css('[aria-current="page"]', text: "Users")
end
end end
context "when the current user does not match the user ID" do context "when the current user does not match the user ID" do

Loading…
Cancel
Save