Browse Source

changed approach to refinement

pull/781/head
Ted-U 3 years ago
parent
commit
a5d82f728e
  1. 54
      app/helpers/tab_nav_helper.rb
  2. 1
      app/models/form/setup/questions/location_id.rb
  3. 17
      app/postcode_app.rb
  4. 15
      lib/ext/string.rb
  5. 38
      spec/features/form/postcode_format_spec.rb

54
app/helpers/tab_nav_helper.rb

@ -1,32 +1,44 @@
module TabNavHelper
include GovukLinkHelper
include Helpers
def user_cell(user)
link_text = user.name.presence || user.email
[govuk_link_to(link_text, user), "<span class=\"govuk-visually-hidden\">User </span><span class=\"govuk-!-font-weight-regular app-!-colour-muted\">#{user.email}</span>"].join("\n")
end
module TabNavHelper
include GovukLinkHelper
include Helpers
using FormatPostcode
def location_cell(location, link)
link_text = location.postcode.formatted_postcode
[govuk_link_to(link_text, link, method: :patch), "<span class=\"govuk-visually-hidden\">Location </span><span class=\"govuk-!-font-weight-regular app-!-colour-muted\">#{location.name}</span>"].join("\n")
end
def user_cell(user)
link_text = user.name.presence || user.email
[govuk_link_to(link_text, user), "<span class=\"govuk-visually-hidden\">User </span><span class=\"govuk-!-font-weight-regular app-!-colour-muted\">#{user.email}</span>"].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), "<span class=\"govuk-visually-hidden\">Scheme </span><span class=\"govuk-!-font-weight-regular app-!-colour-muted\">#{scheme.primary_client_group}</span>"].join("\n")
end
=======
def location_cell(location, link)
link_text = location.postcode.formatted_postcode
[govuk_link_to(link_text, link, method: :patch), "<span class=\"govuk-visually-hidden\">Location </span><span class=\"govuk-!-font-weight-regular app-!-colour-muted\">#{location.name}</span>"].join("\n")
end
>>>>>>> Stashed changes
def org_cell(user)
role = "<span class=\"app-!-colour-muted\">#{user.role.to_s.humanize}</span>"
[user.organisation.name, role].join("\n")
end
def scheme_cell(scheme)
link_text = scheme.service_name
[govuk_link_to(link_text, scheme), "<span class=\"govuk-visually-hidden\">Scheme </span><span class=\"govuk-!-font-weight-regular app-!-colour-muted\">#{scheme.primary_client_group}</span>"].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) },
]
def org_cell(user)
role = "<span class=\"app-!-colour-muted\">#{user.role.to_s.humanize}</span>"
[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
end

1
app/models/form/setup/questions/location_id.rb

@ -1,4 +1,5 @@
class Form::Setup::Questions::LocationId < ::Form::Question
using FormatPostcode
def initialize(_id, hsh, page)
super("location_id", hsh, page)
@check_answer_label = "Location"

17
app/postcode_app.rb

@ -0,0 +1,17 @@
module FormatPostcode
refine FormatPostcode do
def formatted_postcode
postcode = upcase.gsub(/\s+/, "")
case postcode.length
when 5
postcode.insert(2, " ")
when 6
postcode.insert(3, " ")
when 7
postcode.insert(4, " ")
else
self
end
end
end

15
lib/ext/string.rb

@ -1,15 +0,0 @@
class String
def formatted_postcode
postcode = upcase.gsub(/\s+/, "")
case postcode.length
when 5
postcode.insert(2, " ")
when 6
postcode.insert(3, " ")
when 7
postcode.insert(4, " ")
else
self
end
end
end

38
spec/features/form/postcode_format_spec.rb

@ -1,38 +0,0 @@
require "rails_helper"
require_relative "helpers"
RSpec.describe "Postcode formatting" do
include Helpers
let(:user) { FactoryBot.create(:user) }
let(:case_log) do
FactoryBot.create(
:case_log,
:in_progress,
owning_organisation: user.organisation,
managing_organisation: user.organisation,
)
end
let(:id) { case_log.id }
before do
sign_in user
end
context "when a postcode is input" do
it "for a 6 character postcode a space will be after the third character" do
visit("/logs/#{id}/property-postcode")
fill_in("case-log-postcode-full-field", with: "aa11aa")
click_button("Save and continue")
visit("/logs/#{id}/property-information/check-answers")
expect(page).to have_text("AA1 1AA")
end
it "for a 5 character postcode a space will be after the second character" do
visit("/logs/#{id}/property-postcode")
fill_in("case-log-postcode-full-field", with: "a99aa")
click_button("Save and continue")
visit("/logs/#{id}/property-information/check-answers")
expect(page).to have_text("A9 9AA")
end
end
end
Loading…
Cancel
Save