Browse Source

massive refacotring

pull/643/head
JG 3 years ago
parent
commit
351c511446
  1. 4
      app/helpers/title_helper.rb
  2. 2
      app/views/case_logs/index.html.erb
  3. 2
      app/views/organisations/index.html.erb
  4. 2
      app/views/organisations/logs.html.erb
  5. 2
      app/views/organisations/show.html.erb
  6. 2
      app/views/organisations/users.html.erb
  7. 2
      app/views/users/index.html.erb
  8. 114
      spec/helpers/title_helper_spec.rb

4
app/helpers/title_helper.rb

@ -3,9 +3,9 @@ module TitleHelper
count > 1 ? item.pluralize : item
end
def format_title(_path, searched, page_title, current_user, item_label, count, organisation_name)
def format_title(searched, page_title, current_user, item_label, count, organisation_name)
if searched.present?
actual_title = support_user_sab_nav?(current_user, organisation_name) ? organisation_name.to_s : page_title
actual_title = support_user_sab_nav?(current_user, organisation_name) ? organisation_name : page_title
"#{actual_title} (#{count} #{item_label} matching ‘#{searched}’)"
else
support_user_sab_nav?(current_user, organisation_name) ? "#{organisation_name} (#{page_title})" : page_title

2
app/views/case_logs/index.html.erb

@ -1,5 +1,5 @@
<% item_label = format_label(@pagy.count, "log") %>
<% title = format_title(request.path, @searched, "Logs", current_user, item_label, @pagy.count, nil) %>
<% title = format_title(@searched, "Logs", current_user, item_label, @pagy.count, nil) %>
<% content_for :title, title %>

2
app/views/organisations/index.html.erb

@ -1,5 +1,5 @@
<% item_label = format_label(@pagy.count, "organisation") %>
<% title = format_title(request.path, @searched, "Organisations", current_user, item_label, @pagy.count, nil) %>
<% title = format_title(@searched, "Organisations", current_user, item_label, @pagy.count, nil) %>
<% content_for :title, title %>

2
app/views/organisations/logs.html.erb

@ -1,5 +1,5 @@
<% item_label = format_label(@pagy.count, "log") %>
<% title = format_title(request.path, @searched, "Logs", current_user, item_label, @pagy.count, @organisation.name) %>
<% title = format_title(@searched, "Logs", current_user, item_label, @pagy.count, @organisation.name) %>
<% content_for :title, title %>

2
app/views/organisations/show.html.erb

@ -1,5 +1,5 @@
<% title = current_user.support? ? "#{@organisation.name} (Organisation details)" : "Organisation details" %>
<% title = format_title(request.path, nil, current_user.support? ? "Organisation details" : "About your organisation", current_user, nil, nil, @organisation.name) %>
<% title = format_title(nil, current_user.support? ? "Organisation details" : "About your organisation", current_user, nil, nil, @organisation.name) %>
<% content_for :title, title %>
<h1 class="govuk-heading-l">

2
app/views/organisations/users.html.erb

@ -1,5 +1,5 @@
<% item_label = format_label(@pagy.count, "user") %>
<% title = format_title(request.path, @searched, "Users", current_user, item_label, @pagy.count, @organisation.name) %>
<% title = format_title(@searched, "Users", current_user, item_label, @pagy.count, @organisation.name) %>
<% content_for :title, title %>

2
app/views/users/index.html.erb

@ -1,5 +1,5 @@
<% item_label = format_label(@pagy.count, "user") %>
<% title = format_title(request.path, @searched, "Users", current_user, item_label, @pagy.count, nil) %>
<% title = format_title(@searched, "Users", current_user, item_label, @pagy.count, nil) %>
<% content_for :title, title %>

114
spec/helpers/title_helper_spec.rb

@ -20,38 +20,18 @@ RSpec.describe TitleHelper do
let(:count) { 1 }
let(:organisation_name) { nil }
context "when coordinator user" do
let(:user) { FactoryBot.create(:user, :data_coordinator) }
context "when provider user" do
let(:user) { FactoryBot.create(:user) }
context "when specific organisation details path" do
let(:path) { "organisations/1/details" }
let(:page_title) { "Organisation details" }
context "when any specific path" do
let(:page_title) { "Users" }
let(:organisation_name) { nil }
context "when search is missing" do
let(:expected_title) { page_title }
it "returns expected title when no search" do
expect(format_title(path, nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
end
end
end
context "when support user" do
let(:user) { FactoryBot.create(:user, :support) }
context "when highest level links" do
context "when organisation path" do
let(:path) { "/organisations" }
let(:page_title) { "Organisations" }
context "when search is missing" do
let(:expected_title) { page_title }
it "returns expected title when no search" do
expect(format_title(path, nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
expect(format_title(nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
context "when search is present" do
@ -59,43 +39,25 @@ RSpec.describe TitleHelper do
let(:expected_title) { "#{page_title} (#{count} #{item_label} matching ‘#{search_item}’)" }
it "returns expected title when search is present" do
expect(format_title(path, search_item, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
expect(format_title(search_item, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
end
end
context "when users path" do
let(:path) { "/users" }
let(:page_title) { "Users" }
context "when search is missing" do
let(:expected_title) { page_title }
it "returns expected title when no search" do
expect(format_title(path, nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
end
context "when search is present" do
let(:search_item) { "foobar" }
let(:expected_title) { "#{page_title} (#{count} #{item_label} matching ‘#{search_item}’)" }
it "returns expected title when search is present" do
expect(format_title(path, search_item, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
end
end
context "when coordinator user" do
let(:user) { FactoryBot.create(:user, :data_coordinator) }
context "when logs path" do
let(:path) { "/logs" }
let(:page_title) { "Logs" }
context "when any specific path" do
let(:page_title) { "Users" }
let(:organisation_name) { nil }
context "when search is missing" do
let(:expected_title) { page_title }
it "returns expected title when no search" do
expect(format_title(path, nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
expect(format_title(nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
context "when search is present" do
@ -103,69 +65,46 @@ RSpec.describe TitleHelper do
let(:expected_title) { "#{page_title} (#{count} #{item_label} matching ‘#{search_item}’)" }
it "returns expected title when search is present" do
expect(format_title(path, search_item, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
expect(format_title(search_item, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
end
end
end
context "when sub nav links" do
context "when specific organisation logs path" do
let(:path) { "organisations/1/logs" }
let(:page_title) { "Logs" }
let(:organisation_name) { "Foo Bar" }
context "when search is missing" do
let(:expected_title) { "#{organisation_name} (#{page_title})" }
it "returns expected title when no search" do
expect(format_title(path, nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
end
context "when search is present" do
let(:search_item) { "foobar" }
let(:expected_title) { "#{organisation_name} (#{count} #{item_label} matching ‘#{search_item}’)" }
it "returns expected title when search is present" do
expect(format_title(path, search_item, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
end
end
context "when support user" do
let(:user) { FactoryBot.create(:user, :support) }
context "when specific organisation users path" do
let(:path) { "organisations/1/users" }
let(:page_title) { "Users" }
let(:organisation_name) { "Foo Bar" }
context "when no organisation is specified" do
let(:page_title) { "Organisations" }
context "when search is missing" do
let(:expected_title) { "#{organisation_name} (#{page_title})" }
let(:expected_title) { page_title }
it "returns expected title when no search" do
expect(format_title(path, nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
expect(format_title(nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
end
context "when search is present" do
let(:search_item) { "foobar" }
let(:expected_title) { "#{organisation_name} (#{count} #{item_label} matching ‘#{search_item}’)" }
let(:expected_title) { "#{page_title} (#{count} #{item_label} matching ‘#{search_item}’)" }
it "returns expected title when search is present" do
expect(format_title(path, search_item, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
expect(format_title(search_item, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
end
end
context "when specific organisation details path" do
let(:path) { "organisations/1/details" }
let(:page_title) { "Organisation details" }
let(:organisation_name) { "Foo Bar" }
context "when organisation is specified" do
let(:page_title) { "Organisations" }
let(:organisation_name) { "Some Name" }
context "when search is missing" do
let(:expected_title) { "#{organisation_name} (#{page_title})" }
it "returns expected title when no search" do
expect(format_title(path, nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
expect(format_title(nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
end
@ -174,8 +113,7 @@ RSpec.describe TitleHelper do
let(:expected_title) { "#{organisation_name} (#{count} #{item_label} matching ‘#{search_item}’)" }
it "returns expected title when search is present" do
expect(format_title(path, search_item, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
expect(format_title(search_item, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
end
end
end

Loading…
Cancel
Save