Browse Source

Merge branch 'main' into CLDC-2357-invalid-uprn-bu-bug

pull/1626/head
natdeanlewissoftwire 3 years ago
parent
commit
a035ce575f
  1. 4
      app/models/log.rb
  2. 2
      app/services/bulk_upload/lettings/year2023/row_parser.rb
  3. 6
      app/services/bulk_upload/sales/year2023/row_parser.rb
  4. 8
      spec/requests/lettings_logs_controller_spec.rb
  5. 1
      spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb
  6. 60
      spec/services/bulk_upload/sales/year2023/row_parser_spec.rb

4
app/models/log.rb

@ -41,7 +41,7 @@ class Log < ApplicationRecord
} }
scope :created_by, ->(user) { where(created_by: user) } scope :created_by, ->(user) { where(created_by: user) }
attr_accessor :skip_update_status attr_accessor :skip_update_status, :skip_update_uprn_confirmed
def process_uprn_change! def process_uprn_change!
if uprn.present? if uprn.present?
@ -53,7 +53,7 @@ class Log < ApplicationRecord
presenter = UprnDataPresenter.new(service.result) presenter = UprnDataPresenter.new(service.result)
self.uprn_known = 1 self.uprn_known = 1
self.uprn_confirmed = nil self.uprn_confirmed = nil unless skip_update_uprn_confirmed
self.address_line1 = presenter.address_line1 self.address_line1 = presenter.address_line1
self.address_line2 = presenter.address_line2 self.address_line2 = presenter.address_line2
self.town_or_city = presenter.town_or_city self.town_or_city = presenter.town_or_city

2
app/services/bulk_upload/lettings/year2023/row_parser.rb

@ -1153,6 +1153,8 @@ private
attributes["first_time_property_let_as_social_housing"] = first_time_property_let_as_social_housing attributes["first_time_property_let_as_social_housing"] = first_time_property_let_as_social_housing
attributes["uprn_known"] = field_18.present? ? 1 : 0 attributes["uprn_known"] = field_18.present? ? 1 : 0
attributes["uprn_confirmed"] = 1 if field_18.present?
attributes["skip_update_uprn_confirmed"] = true
attributes["uprn"] = field_18 attributes["uprn"] = field_18
attributes["address_line1"] = field_19 attributes["address_line1"] = field_19
attributes["address_line2"] = field_20 attributes["address_line2"] = field_20

6
app/services/bulk_upload/sales/year2023/row_parser.rb

@ -795,7 +795,8 @@ private
attributes["mortlen"] = mortlen attributes["mortlen"] = mortlen
attributes["proplen"] = proplen attributes["proplen"] = proplen if proplen&.positive?
attributes["proplen_asked"] = attributes["proplen"]&.present? ? 0 : 1
attributes["jointmore"] = field_15 attributes["jointmore"] = field_15
attributes["staircase"] = field_87 attributes["staircase"] = field_87
attributes["privacynotice"] = field_29 attributes["privacynotice"] = field_29
@ -812,6 +813,9 @@ private
attributes["mortgageused"] = mortgageused attributes["mortgageused"] = mortgageused
attributes["uprn"] = field_19 attributes["uprn"] = field_19
attributes["uprn_known"] = field_19.present? ? 1 : 0
attributes["uprn_confirmed"] = 1 if field_19.present?
attributes["skip_update_uprn_confirmed"] = true
attributes["address_line1"] = field_20 attributes["address_line1"] = field_20
attributes["address_line2"] = field_21 attributes["address_line2"] = field_21
attributes["town_or_city"] = field_22 attributes["town_or_city"] = field_22

8
spec/requests/lettings_logs_controller_spec.rb

@ -1138,14 +1138,14 @@ RSpec.describe LettingsLogsController, type: :request do
it "only displays affected logs" do it "only displays affected logs" do
get "/lettings-logs/update-logs", headers:, params: {} get "/lettings-logs/update-logs", headers:, params: {}
expect(page).to have_content("You need to update 3 logs") expect(page).to have_content("You need to update 3 logs")
expect(page).to have_content(affected_lettings_logs.first.id) expect(page).to have_link("Update now", href: "/lettings-logs/#{affected_lettings_logs.first.id}/tenancy-start-date")
expect(page).not_to have_content(non_affected_lettings_logs.first.id) expect(page).not_to have_link("Update now", href: "/lettings-logs/#{non_affected_lettings_logs.first.id}/tenancy-start-date")
end end
it "only displays the logs created by the user" do it "only displays the logs created by the user" do
get "/lettings-logs/update-logs", headers:, params: {} get "/lettings-logs/update-logs", headers:, params: {}
expect(page).to have_content(affected_lettings_logs.second.id) expect(page).to have_link("Update now", href: "/lettings-logs/#{affected_lettings_logs.second.id}/tenancy-start-date")
expect(page).not_to have_content(other_user_affected_lettings_log.id) expect(page).not_to have_link("Update now", href: "/lettings-logs/#{other_user_affected_lettings_log.id}/tenancy-start-date")
expect(page).to have_content("You need to update 3 logs") expect(page).to have_content("You need to update 3 logs")
end end

1
spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb

@ -1077,6 +1077,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do
it "sets to 1" do it "sets to 1" do
expect(parser.log.uprn_known).to be(1) expect(parser.log.uprn_known).to be(1)
expect(parser.log.uprn_confirmed).to be(1)
end end
end end

60
spec/services/bulk_upload/sales/year2023/row_parser_spec.rb

@ -542,6 +542,12 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do
it "is valid" do it "is valid" do
expect(parser.errors[:field_19]).to be_blank expect(parser.errors[:field_19]).to be_blank
end end
it "sets UPRN and UPRN known" do
expect(parser.log.uprn).to eq("100023336956")
expect(parser.log.uprn_known).to eq(1)
expect(parser.log.uprn_confirmed).to eq(1)
end
end end
context "when UPRN not known but address known" do context "when UPRN not known but address known" do
@ -673,6 +679,24 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do
end end
end end
describe "#uprn_known" do
context "when uprn known" do
let(:attributes) { setup_section_params.merge({ field_19: "100023336956" }) }
it "is correctly set" do
expect(parser.log.uprn_known).to be(1)
end
end
context "when uprn not known" do
let(:attributes) { setup_section_params.merge({ field_19: nil }) }
it "is correctly set" do
expect(parser.log.uprn_known).to be(0)
end
end
end
describe "#address_line1" do describe "#address_line1" do
let(:attributes) { setup_section_params.merge({ field_20: "some street" }) } let(:attributes) { setup_section_params.merge({ field_20: "some street" }) }
@ -776,5 +800,41 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do
expect(parser.log.soctenant).to be(1) expect(parser.log.soctenant).to be(1)
end end
end end
describe "with living before purchase years for shared ownership more than 0" do
let(:attributes) { setup_section_params.merge({ field_7: "1", field_86: "1" }) }
it "is sets living before purchase asked to yes and sets the correct living before purchase years" do
expect(parser.log.proplen_asked).to be(0)
expect(parser.log.proplen).to be(1)
end
end
describe "with living before purchase years for discounted ownership more than 0" do
let(:attributes) { setup_section_params.merge({ field_7: "2", field_115: "1" }) }
it "is sets living before purchase asked to yes and sets the correct living before purchase years" do
expect(parser.log.proplen_asked).to be(0)
expect(parser.log.proplen).to be(1)
end
end
describe "with living before purchase years for shared ownership set to 0" do
let(:attributes) { setup_section_params.merge({ field_7: "1", field_86: "0" }) }
it "is sets living before purchase asked to no" do
expect(parser.log.proplen_asked).to be(1)
expect(parser.log.proplen).to be_nil
end
end
describe "with living before purchase 0 years for discounted ownership set to 0" do
let(:attributes) { setup_section_params.merge({ field_7: "2", field_115: "0" }) }
it "is sets living before purchase asked to no" do
expect(parser.log.proplen_asked).to be(1)
expect(parser.log.proplen).to be_nil
end
end
end end
end end

Loading…
Cancel
Save