Browse Source

Correct routing to property LA

pull/2449/head
Kat 2 years ago
parent
commit
251ba233f8
  1. 3
      app/models/form/lettings/pages/property_local_authority.rb
  2. 3
      app/models/form/sales/pages/property_local_authority.rb
  3. 2
      app/models/lettings_log.rb
  4. 2
      app/models/sales_log.rb
  5. 76
      spec/models/form/lettings/pages/property_local_authority_spec.rb
  6. 54
      spec/models/form/sales/pages/property_local_authority_spec.rb

3
app/models/form/lettings/pages/property_local_authority.rb

@ -3,7 +3,8 @@ class Form::Lettings::Pages::PropertyLocalAuthority < ::Form::Page
super
@id = "property_local_authority"
@depends_on = [
{ "is_la_inferred" => false, "is_general_needs?" => true, "address_search_given?" => true },
{ "is_la_inferred" => false, "is_general_needs?" => true, "form.start_year_after_2024?" => false },
{ "is_la_inferred" => false, "is_general_needs?" => true, "form.start_year_after_2024?" => true, "address_search_given?" => true },
]
end

3
app/models/form/sales/pages/property_local_authority.rb

@ -3,7 +3,8 @@ class Form::Sales::Pages::PropertyLocalAuthority < ::Form::Page
super
@id = "property_local_authority"
@depends_on = [
{ "is_la_inferred" => false, "address_search_given?" => true },
{ "is_la_inferred" => false, "form.start_year_after_2024?" => false },
{ "is_la_inferred" => false, "form.start_year_after_2024?" => true, "address_search_given?" => true },
]
end

2
app/models/lettings_log.rb

@ -687,7 +687,7 @@ class LettingsLog < Log
end
def address_search_given?
address_line1_input.present? && postcode_full.present?
address_line1_input.present? && postcode_full_input.present?
end
private

2
app/models/sales_log.rb

@ -540,6 +540,6 @@ class SalesLog < Log
end
def address_search_given?
address_line1_input.present? && postcode_full.present?
address_line1_input.present? && postcode_full_input.present?
end
end

76
spec/models/form/lettings/pages/property_local_authority_spec.rb

@ -5,8 +5,12 @@ RSpec.describe Form::Lettings::Pages::PropertyLocalAuthority, type: :model do
let(:page_id) { nil }
let(:page_definition) { nil }
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) }
let(:start_date) { Time.utc(2022, 4, 1) }
let(:form) { FormHandler.instance.forms["current_lettings"] }
let(:subsection) { instance_double(Form::Subsection, form:, enabled?: true) }
before do
allow(form).to receive(:start_date).and_return(Time.utc(2022, 4, 1))
end
it "has correct subsection" do
expect(page.subsection).to eq(subsection)
@ -32,9 +36,69 @@ RSpec.describe Form::Lettings::Pages::PropertyLocalAuthority, type: :model do
expect(page.description).to be_nil
end
it "has the correct depends_on" do
expect(page.depends_on).to match([{ "address_search_given?" => true,
"is_general_needs?" => true,
"is_la_inferred" => false }])
context "when routing to the page" do
let(:log) { build(:lettings_log) }
context "with form before 2024" do
before do
allow(form).to receive(:start_year_after_2024?).and_return(false)
end
it "is routed to when la is not inferred and it is general needs log" do
log.needstype = 1
log.is_la_inferred = false
expect(page).to be_routed_to(log, nil)
end
it "is not routed to when la is inferred" do
log.needstype = 1
log.is_la_inferred = true
expect(page).not_to be_routed_to(log, nil)
end
it "is not routed to when it's a supported housing log" do
log.needstype = 2
log.is_la_inferred = false
expect(page).not_to be_routed_to(log, nil)
end
end
context "with form after 2024" do
before do
allow(form).to receive(:start_year_after_2024?).and_return(true)
end
it "is routed to when la is not inferred, it is general needs log and address search has been given" do
log.needstype = 1
log.is_la_inferred = false
log.address_line1_input = "1"
log.postcode_full_input = "A11AA"
expect(page).to be_routed_to(log, nil)
end
it "is not routed to when la is inferred" do
log.needstype = 1
log.is_la_inferred = true
log.address_line1_input = "1"
log.postcode_full_input = "A11AA"
expect(page).not_to be_routed_to(log, nil)
end
it "is not routed to when it's a supported housing log" do
log.needstype = 2
log.is_la_inferred = false
log.address_line1_input = "1"
log.postcode_full_input = "A11AA"
expect(page).not_to be_routed_to(log, nil)
end
it "is not routed to when address search is not given" do
log.needstype = 1
log.is_la_inferred = false
log.address_line1_input = nil
log.postcode_full_input = "A11AA"
expect(page).not_to be_routed_to(log, nil)
end
end
end
end

54
spec/models/form/sales/pages/property_local_authority_spec.rb

@ -5,9 +5,14 @@ RSpec.describe Form::Sales::Pages::PropertyLocalAuthority, type: :model do
let(:page_id) { nil }
let(:page_definition) { nil }
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) }
let(:form) { FormHandler.instance.forms["current_sales"] }
let(:subsection) { instance_double(Form::Subsection, form:, enabled?: true) }
let(:start_date) { Time.utc(2022, 4, 1) }
before do
allow(form).to receive(:start_date).and_return(start_date)
end
it "has correct subsection" do
expect(page.subsection).to eq(subsection)
end
@ -51,7 +56,50 @@ RSpec.describe Form::Sales::Pages::PropertyLocalAuthority, type: :model do
expect(page.description).to be_nil
end
it "has the correct depends_on" do
expect(page.depends_on).to eq([{ "address_search_given?" => true, "is_la_inferred" => false }])
context "when routing to the page" do
let(:log) { build(:sales_log) }
context "with form before 2024" do
before do
allow(form).to receive(:start_year_after_2024?).and_return(false)
end
it "is routed to when la is not inferred" do
log.is_la_inferred = false
expect(page).to be_routed_to(log, nil)
end
it "is not routed to when la is inferred" do
log.is_la_inferred = true
expect(page).not_to be_routed_to(log, nil)
end
end
context "with form after 2024" do
before do
allow(form).to receive(:start_year_after_2024?).and_return(true)
end
it "is routed to when la is not inferred and address search has been given" do
log.is_la_inferred = false
log.address_line1_input = "1"
log.postcode_full_input = "A11AA"
expect(page).to be_routed_to(log, nil)
end
it "is not routed to when la is inferred" do
log.is_la_inferred = true
log.address_line1_input = "1"
log.postcode_full_input = "A11AA"
expect(page).not_to be_routed_to(log, nil)
end
it "is not routed to when address search is not given" do
log.is_la_inferred = false
log.address_line1_input = nil
log.postcode_full_input = "A11AA"
expect(page).not_to be_routed_to(log, nil)
end
end
end
end

Loading…
Cancel
Save