Browse Source

Update uprn pages routing

pull/2102/head
Kat 2 years ago
parent
commit
09d6290331
  1. 11
      app/models/form/lettings/pages/address.rb
  2. 5
      app/models/form/lettings/pages/uprn.rb
  3. 9
      app/models/form/sales/pages/address.rb
  4. 4
      app/models/form/sales/pages/uprn.rb
  5. 42
      spec/models/form/lettings/pages/address_spec.rb
  6. 26
      spec/models/form/lettings/pages/uprn_confirmation_spec.rb
  7. 20
      spec/models/form/lettings/pages/uprn_spec.rb
  8. 25
      spec/models/form/lettings/questions/uprn_confirmation_spec.rb
  9. 22
      spec/models/form/lettings/questions/uprn_spec.rb
  10. 43
      spec/models/form/sales/pages/address_spec.rb
  11. 23
      spec/models/form/sales/questions/uprn_spec.rb

11
app/models/form/lettings/pages/address.rb

@ -3,6 +3,11 @@ class Form::Lettings::Pages::Address < ::Form::Page
super
@id = "address"
@header = "Q12 - What is the property's address?"
@depends_on = [
{ "is_supported_housing?" => false, "uprn_known" => nil },
{ "is_supported_housing?" => false, "uprn_known" => 0 },
{ "is_supported_housing?" => false, "uprn_confirmed" => 0 },
]
end
def questions
@ -14,10 +19,4 @@ class Form::Lettings::Pages::Address < ::Form::Page
Form::Lettings::Questions::PostcodeForFullAddress.new(nil, nil, self),
]
end
def routed_to?(log, _current_user = nil)
return false if log.is_supported_housing?
log.uprn_known.nil? || log.uprn_known.zero? || log.uprn_confirmed&.zero?
end
end

5
app/models/form/lettings/pages/uprn.rb

@ -2,6 +2,7 @@ class Form::Lettings::Pages::Uprn < ::Form::Page
def initialize(id, hsh, subsection)
super
@id = "uprn"
@depends_on = [{ "is_supported_housing?" => false }]
end
def questions
@ -11,10 +12,6 @@ class Form::Lettings::Pages::Uprn < ::Form::Page
]
end
def routed_to?(log, _current_user = nil)
!log.is_supported_housing?
end
def skip_text
"Enter address instead"
end

9
app/models/form/sales/pages/address.rb

@ -3,6 +3,11 @@ class Form::Sales::Pages::Address < ::Form::Page
super
@id = "address"
@header = "Q15 - What is the property's address?"
@depends_on = [
{ "uprn_known" => nil },
{ "uprn_known" => 0 },
{ "uprn_confirmed" => 0 },
]
end
def questions
@ -14,8 +19,4 @@ class Form::Sales::Pages::Address < ::Form::Page
Form::Sales::Questions::PostcodeForFullAddress.new(nil, nil, self),
]
end
def routed_to?(log, _current_user = nil)
log.uprn_known.nil? || log.uprn_known.zero? || log.uprn_confirmed&.zero?
end
end

4
app/models/form/sales/pages/uprn.rb

@ -11,10 +11,6 @@ class Form::Sales::Pages::Uprn < ::Form::Page
]
end
def routed_to?(_log, _current_user)
true
end
def skip_text
"Enter address instead"
end

42
spec/models/form/lettings/pages/address_spec.rb

@ -28,46 +28,6 @@ RSpec.describe Form::Lettings::Pages::Address, type: :model do
end
it "has correct depends_on" do
expect(page.depends_on).to be_nil
end
describe "has correct routed_to?" do
context "when uprn_known == nil" do
let(:log) { create(:lettings_log, uprn_known: nil) }
it "returns true" do
expect(page.routed_to?(log)).to eq(true)
end
end
context "when uprn_confirmed != 1" do
let(:log) do
create(:lettings_log, uprn_known: 1, uprn: "12345", uprn_confirmed: 0)
end
it "returns true" do
expect(page.routed_to?(log)).to eq(true)
end
end
context "when uprn_known == 0" do
let(:log) do
create(:lettings_log, uprn_known: 0, uprn_confirmed: 0)
end
it "returns true" do
expect(page.routed_to?(log)).to eq(true)
end
end
context "when uprn_confirmed == 1 && uprn_known != 0" do
let(:log) do
create(:lettings_log, uprn_known: 1, uprn: "12345", uprn_confirmed: 1)
end
it "returns false" do
expect(page.routed_to?(log)).to eq(false)
end
end
expect(page.depends_on).to eq([{ "is_supported_housing?" => false, "uprn_known" => nil }, { "is_supported_housing?" => false, "uprn_known" => 0 }, { "is_supported_housing?" => false, "uprn_confirmed" => 0 }])
end
end

26
spec/models/form/lettings/pages/uprn_confirmation_spec.rb

@ -30,30 +30,4 @@ RSpec.describe Form::Lettings::Pages::UprnConfirmation, type: :model do
it "has correct depends_on" do
expect(page.depends_on).to be_nil
end
describe "has correct routed_to?" do
context "when uprn present && uprn_known == 1 " do
let(:log) { create(:lettings_log, uprn_known: 1, uprn: "123456789") }
it "returns true" do
expect(page.routed_to?(log)).to eq(true)
end
end
context "when uprn = nil" do
let(:log) { create(:lettings_log, uprn_known: 1, uprn: nil) }
it "returns false" do
expect(page.routed_to?(log)).to eq(false)
end
end
context "when uprn_known == 0" do
let(:log) { create(:lettings_log, uprn_known: 0, uprn: "123456789") }
it "returns false" do
expect(page.routed_to?(log)).to eq(false)
end
end
end
end

20
spec/models/form/lettings/pages/uprn_spec.rb

@ -28,31 +28,13 @@ RSpec.describe Form::Lettings::Pages::Uprn, type: :model do
end
it "has correct depends_on" do
expect(page.depends_on).to be_nil
expect(page.depends_on).to eq([{ "is_supported_housing?" => false }])
end
it "has correct skip_text" do
expect(page.skip_text).to eq("Enter address instead")
end
describe "has correct routed_to?" do
context "when uprn_known == 1" do
let(:log) { create(:lettings_log, uprn_known: 1) }
it "returns true" do
expect(page.routed_to?(log)).to eq(true)
end
end
context "when needstype == 2" do
let(:log) { create(:lettings_log, uprn_known: 1, needstype: 2) }
it "returns true" do
expect(page.routed_to?(log)).to eq(false)
end
end
end
describe "has correct skip_href" do
context "when log is nil" do
it "is nil" do

25
spec/models/form/lettings/questions/uprn_confirmation_spec.rb

@ -7,6 +7,25 @@ RSpec.describe Form::Lettings::Questions::UprnConfirmation, type: :model do
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
before do
body = {
results: [
{
DPA: {
"POSTCODE": "AA1 1AA",
"POST_TOWN": "Test Town",
"ORGANISATION_NAME": "1, Test Street",
},
},
],
}.to_json
stub_request(:get, "https://api.os.uk/search/places/v1/uprn?key=OS_DATA_KEY&uprn=1234")
.to_return(status: 200, body:, headers: {})
stub_request(:get, "https://api.os.uk/search/places/v1/uprn?key=OS_DATA_KEY&uprn=1")
.to_return(status: 200, body:, headers: {})
end
it "has correct page" do
expect(question.page).to eq(page)
end
@ -50,11 +69,11 @@ RSpec.describe Form::Lettings::Questions::UprnConfirmation, type: :model do
context "when address is present" do
it "returns formatted value" do
log = create(:lettings_log, address_line1: "1, Test Street", town_or_city: "Test Town", county: "Test County", postcode_full: "AA1 1AA", uprn: "1234", uprn_known: 1)
log = create(:lettings_log, :setup_completed, address_line1: "1, Test Street", town_or_city: "Test Town", postcode_full: "AA1 1AA", uprn: "1234", uprn_known: 1)
expect(question.notification_banner(log)).to eq(
{
heading: "1, Test Street\nAA1 1AA\nTest Town\nTest County",
heading: "1, Test Street\nAA1 1AA\nTest Town",
title: "UPRN: 1234",
},
)
@ -72,7 +91,7 @@ RSpec.describe Form::Lettings::Questions::UprnConfirmation, type: :model do
end
context "when uprn_known == 1 && uprn_confirmed == nil" do
let(:log) { create(:lettings_log, uprn_known: 1, uprn_confirmed: nil) }
let(:log) { create(:lettings_log, :completed, uprn_known: 1, uprn: 1, uprn_confirmed: nil) }
it "returns false" do
expect(question.hidden_in_check_answers?(log)).to eq(false)

22
spec/models/form/lettings/questions/uprn_spec.rb

@ -7,6 +7,23 @@ RSpec.describe Form::Lettings::Questions::Uprn, type: :model do
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
before do
body = {
results: [
{
DPA: {
"POSTCODE": "AA1 1AA",
"POST_TOWN": "Test Town",
"ORGANISATION_NAME": "1, Test Street",
},
},
],
}.to_json
stub_request(:get, "https://api.os.uk/search/places/v1/uprn?key=OS_DATA_KEY&uprn=1")
.to_return(status: 200, body:, headers: {})
end
it "has correct page" do
expect(question.page).to eq(page)
end
@ -56,6 +73,7 @@ RSpec.describe Form::Lettings::Questions::Uprn, type: :model do
let(:log) do
create(
:lettings_log,
:completed,
address_line1: "1, Test Street",
town_or_city: "Test Town",
county: "Test County",
@ -77,11 +95,11 @@ RSpec.describe Form::Lettings::Questions::Uprn, type: :model do
context "when uprn known" do
let(:uprn_known) { 1 }
let(:uprn) { 123_456_789 }
let(:uprn) { 1 }
it "returns formatted value" do
expect(question.get_extra_check_answer_value(log)).to eq(
"\n\n1, Test Street\nTest Town\nTest County\nAA1 1AA\nWestminster",
"\n\n1, Test Street\nTest Town\nAA1 1AA\nWestminster",
)
end
end

43
spec/models/form/sales/pages/address_spec.rb

@ -28,47 +28,6 @@ RSpec.describe Form::Sales::Pages::Address, type: :model do
end
it "has correct depends_on" do
expect(page.depends_on).to be_nil
end
describe "has correct routed_to?" do
context "when uprn_known == nil" do
let(:log) { create(:sales_log, uprn_known: nil) }
it "returns true" do
expect(page.routed_to?(log)).to eq(true)
end
end
context "when uprn_confirmed != 1" do
let(:log) do
create(:sales_log, uprn_known: 1, uprn: "12345", uprn_confirmed: 0)
end
it "returns true" do
expect(page.routed_to?(log)).to eq(true)
end
end
context "when uprn_known == 0" do
let(:log) do
create(:sales_log, uprn_confirmed: 0)
end
it "returns true" do
log.uprn_known = 0
expect(page.routed_to?(log)).to eq(true)
end
end
context "when uprn_confirmed == 1 && uprn_known != 0" do
let(:log) do
create(:sales_log, uprn_known: 1, uprn: "12345", uprn_confirmed: 1)
end
it "returns false" do
expect(page.routed_to?(log)).to eq(false)
end
end
expect(page.depends_on).to eq([{ "uprn_known" => nil }, { "uprn_known" => 0 }, { "uprn_confirmed" => 0 }])
end
end

23
spec/models/form/sales/questions/uprn_spec.rb

@ -7,6 +7,23 @@ RSpec.describe Form::Sales::Questions::Uprn, type: :model do
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page) }
before do
body = {
results: [
{
DPA: {
"POSTCODE": "AA1 1AA",
"POST_TOWN": "Test Town",
"ORGANISATION_NAME": "1, Test Street",
},
},
],
}.to_json
stub_request(:get, "https://api.os.uk/search/places/v1/uprn?key=OS_DATA_KEY&uprn=1")
.to_return(status: 200, body:, headers: {})
end
it "has correct page" do
expect(question.page).to eq(page)
end
@ -56,9 +73,9 @@ RSpec.describe Form::Sales::Questions::Uprn, type: :model do
let(:log) do
create(
:sales_log,
:completed,
address_line1: "1, Test Street",
town_or_city: "Test Town",
county: "Test County",
postcode_full: "AA1 1AA",
la: "E09000003",
uprn_known:,
@ -77,11 +94,11 @@ RSpec.describe Form::Sales::Questions::Uprn, type: :model do
context "when uprn known" do
let(:uprn_known) { 1 }
let(:uprn) { 123_456_789 }
let(:uprn) { 1 }
it "returns formatted value" do
expect(question.get_extra_check_answer_value(log)).to eq(
"\n\n1, Test Street\nTest Town\nTest County\nAA1 1AA\nWestminster",
"\n\n1, Test Street\nTest Town\nAA1 1AA\nWestminster",
)
end
end

Loading…
Cancel
Save