From 5d6e9ddfde63d5994126539e6723b5d2953ac883 Mon Sep 17 00:00:00 2001 From: JG Date: Thu, 28 Jul 2022 14:42:55 +0100 Subject: [PATCH] spiked and fixed some tests --- app/helpers/tab_nav_helper.rb | 54 ++++++++----------- app/models/case_log.rb | 8 ++- .../form/setup/questions/location_id.rb | 3 +- .../refinement_test.rb} | 8 +-- config/application.rb | 2 - spec/requests/locations_controller_spec.rb | 6 ++- 6 files changed, 37 insertions(+), 44 deletions(-) rename app/{postcode_app.rb => services/refinement_test.rb} (71%) diff --git a/app/helpers/tab_nav_helper.rb b/app/helpers/tab_nav_helper.rb index 5b8a74bb1..7af63aeb1 100644 --- a/app/helpers/tab_nav_helper.rb +++ b/app/helpers/tab_nav_helper.rb @@ -1,44 +1,32 @@ +module TabNavHelper + using RefinementTest + include GovukLinkHelper - module TabNavHelper - include GovukLinkHelper - include Helpers - using FormatPostcode - + def user_cell(user) + link_text = user.name.presence || user.email + [govuk_link_to(link_text, user), "User #{user.email}"].join("\n") + end - def user_cell(user) - link_text = user.name.presence || user.email - [govuk_link_to(link_text, user), "User #{user.email}"].join("\n") - end + def location_cell(location, link) + link_text = location.postcode.formatted_postcode + [govuk_link_to(link_text, link, method: :patch), "Location #{location.name}"].join("\n") + end -<<<<<<< Updated upstream def scheme_cell(scheme) link_text = scheme.service_name link = scheme.confirmed? ? scheme : scheme_check_answers_path(scheme) [govuk_link_to(link_text, link), "Scheme #{scheme.primary_client_group}"].join("\n") end -======= - def location_cell(location, link) - - link_text = location.postcode.formatted_postcode - [govuk_link_to(link_text, link, method: :patch), "Location #{location.name}"].join("\n") - end ->>>>>>> Stashed changes - - def scheme_cell(scheme) - link_text = scheme.service_name - [govuk_link_to(link_text, scheme), "Scheme #{scheme.primary_client_group}"].join("\n") - end - def org_cell(user) - role = "#{user.role.to_s.humanize}" - [user.organisation.name, role].join("\n") - end - - def tab_items(user) - [ - { name: t("Details"), url: details_organisation_path(user.organisation) }, - { name: t("Users"), url: users_organisation_path(user.organisation) }, - ] - end + def org_cell(user) + role = "#{user.role.to_s.humanize}" + [user.organisation.name, role].join("\n") end + def tab_items(user) + [ + { name: t("Details"), url: details_organisation_path(user.organisation) }, + { name: t("Users"), url: users_organisation_path(user.organisation) }, + ] + end +end diff --git a/app/models/case_log.rb b/app/models/case_log.rb index 269d3edd8..843e26be6 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -574,12 +574,12 @@ private end def process_postcode_changes! - self.postcode_full = format_postcode(postcode_full) + self.postcode_full = upcase_and_remove_whitespace(postcode_full) process_postcode(postcode_full, "postcode_known", "is_la_inferred", "la") end def process_previous_postcode_changes! - self.ppostcode_full = format_postcode(ppostcode_full) + self.ppostcode_full = upcase_and_remove_whitespace(ppostcode_full) process_postcode(ppostcode_full, "ppcodenk", "is_previous_la_inferred", "prevloc") end @@ -699,4 +699,8 @@ private (value * 52 / num_of_weeks).round(2) end + + def upcase_and_remove_whitespace(string) + string.present? ? string.upcase.gsub(/\s+/, "") : string + end end diff --git a/app/models/form/setup/questions/location_id.rb b/app/models/form/setup/questions/location_id.rb index fa243c62f..79a3c2d18 100644 --- a/app/models/form/setup/questions/location_id.rb +++ b/app/models/form/setup/questions/location_id.rb @@ -1,5 +1,6 @@ class Form::Setup::Questions::LocationId < ::Form::Question - using FormatPostcode + using RefinementTest + def initialize(_id, hsh, page) super("location_id", hsh, page) @check_answer_label = "Location" diff --git a/app/postcode_app.rb b/app/services/refinement_test.rb similarity index 71% rename from app/postcode_app.rb rename to app/services/refinement_test.rb index d532947d9..957c9662d 100644 --- a/app/postcode_app.rb +++ b/app/services/refinement_test.rb @@ -1,7 +1,7 @@ -module FormatPostcode - refine FormatPostcode do +module RefinementTest + refine String do def formatted_postcode - postcode = upcase.gsub(/\s+/, "") + postcode = self.upcase.gsub(/\s+/, "") case postcode.length when 5 postcode.insert(2, " ") @@ -14,4 +14,4 @@ module FormatPostcode end end end - \ No newline at end of file +end diff --git a/config/application.rb b/config/application.rb index 74d1375b1..7bdbfb93e 100644 --- a/config/application.rb +++ b/config/application.rb @@ -15,8 +15,6 @@ require "action_view/railtie" # require "sprockets/railtie" # require "rails/test_unit/railtie" -require_relative '../lib/ext/string' - # Require the gems listed in Gemfile, including any gems # you've limited to :test, :development, or :production. Bundler.require(*Rails.groups) diff --git a/spec/requests/locations_controller_spec.rb b/spec/requests/locations_controller_spec.rb index f3e118ab1..a989f4a5b 100644 --- a/spec/requests/locations_controller_spec.rb +++ b/spec/requests/locations_controller_spec.rb @@ -1,5 +1,7 @@ require "rails_helper" +using RefinementTest + RSpec.describe LocationsController, type: :request do let(:page) { Capybara::Node::Simple.new(response.body) } let(:user) { FactoryBot.create(:user, :support) } @@ -802,7 +804,7 @@ RSpec.describe LocationsController, type: :request do it "shows scheme" do locations.each do |location| expect(page).to have_content(location.id) - expect(page).to have_content(location.postcode) + expect(page).to have_content(location.postcode.formatted_postcode) expect(page).to have_content(location.type_of_unit) expect(page).to have_content(location.startdate&.to_formatted_s(:govuk_date)) end @@ -904,7 +906,7 @@ RSpec.describe LocationsController, type: :request do it "shows scheme" do locations.each do |location| expect(page).to have_content(location.id) - expect(page).to have_content(location.postcode) + expect(page).to have_content(location.postcode.formatted_postcode) expect(page).to have_content(location.type_of_unit) expect(page).to have_content(location.startdate&.to_formatted_s(:govuk_date)) end