From 0020119a27356431168d875bb942d1969602c012 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Tue, 16 May 2023 10:37:00 +0100 Subject: [PATCH 1/4] Check links instead of content (#1632) --- spec/requests/lettings_logs_controller_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/requests/lettings_logs_controller_spec.rb b/spec/requests/lettings_logs_controller_spec.rb index 7f1dda118..e0c785b71 100644 --- a/spec/requests/lettings_logs_controller_spec.rb +++ b/spec/requests/lettings_logs_controller_spec.rb @@ -1138,14 +1138,14 @@ RSpec.describe LettingsLogsController, type: :request do it "only displays affected logs" do get "/lettings-logs/update-logs", headers:, params: {} expect(page).to have_content("You need to update 3 logs") - expect(page).to have_content(affected_lettings_logs.first.id) - expect(page).not_to have_content(non_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_link("Update now", href: "/lettings-logs/#{non_affected_lettings_logs.first.id}/tenancy-start-date") end it "only displays the logs created by the user" do get "/lettings-logs/update-logs", headers:, params: {} - expect(page).to have_content(affected_lettings_logs.second.id) - expect(page).not_to have_content(other_user_affected_lettings_log.id) + expect(page).to have_link("Update now", href: "/lettings-logs/#{affected_lettings_logs.second.id}/tenancy-start-date") + 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") end From f662536c14f00b9cbbe34676f6decb71b4786461 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire <94526761+natdeanlewissoftwire@users.noreply.github.com> Date: Tue, 16 May 2023 10:38:51 +0100 Subject: [PATCH 2/4] CLDC-2352 Infer uprn_known in 23/24 sales bulk upload (#1625) * feat: infer uprn_known * feat: add test * refactor: lint * feat: process postcode changes to clear la etc when uprn errors clear values * feat: revert previous (moved to CLDC-2357 instead) * feat: revert previous (moved to CLDC-2357 instead) --- .../bulk_upload/sales/year2023/row_parser.rb | 1 + .../sales/year2023/row_parser_spec.rb | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/app/services/bulk_upload/sales/year2023/row_parser.rb b/app/services/bulk_upload/sales/year2023/row_parser.rb index 11cd9f9a7..62598c5ad 100644 --- a/app/services/bulk_upload/sales/year2023/row_parser.rb +++ b/app/services/bulk_upload/sales/year2023/row_parser.rb @@ -823,6 +823,7 @@ private attributes["mortgageused"] = mortgageused attributes["uprn"] = field_19 + attributes["uprn_known"] = field_19.present? ? 1 : 0 attributes["address_line1"] = field_20 attributes["address_line2"] = field_21 attributes["town_or_city"] = field_22 diff --git a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb index 8c5b899b9..3e6413be7 100644 --- a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb @@ -662,6 +662,24 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do 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 let(:attributes) { setup_section_params.merge({ field_20: "some street" }) } From f32dfd6d2f0ecfc4b1c0e336b4200bd4921e25ec Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Tue, 16 May 2023 11:50:29 +0100 Subject: [PATCH 3/4] Set uprn confirmed (#1624) --- app/models/log.rb | 4 ++-- app/services/bulk_upload/lettings/year2023/row_parser.rb | 2 ++ app/services/bulk_upload/sales/year2023/row_parser.rb | 2 ++ .../bulk_upload/lettings/year2023/row_parser_spec.rb | 1 + spec/services/bulk_upload/sales/year2023/row_parser_spec.rb | 6 ++++++ 5 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/models/log.rb b/app/models/log.rb index 6ef5dabf5..6b4af1009 100644 --- a/app/models/log.rb +++ b/app/models/log.rb @@ -41,7 +41,7 @@ class Log < ApplicationRecord } 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! if uprn.present? @@ -53,7 +53,7 @@ class Log < ApplicationRecord presenter = UprnDataPresenter.new(service.result) 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_line2 = presenter.address_line2 self.town_or_city = presenter.town_or_city diff --git a/app/services/bulk_upload/lettings/year2023/row_parser.rb b/app/services/bulk_upload/lettings/year2023/row_parser.rb index bd870d748..851fffd7b 100644 --- a/app/services/bulk_upload/lettings/year2023/row_parser.rb +++ b/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["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["address_line1"] = field_19 attributes["address_line2"] = field_20 diff --git a/app/services/bulk_upload/sales/year2023/row_parser.rb b/app/services/bulk_upload/sales/year2023/row_parser.rb index 62598c5ad..d4cf1ec7e 100644 --- a/app/services/bulk_upload/sales/year2023/row_parser.rb +++ b/app/services/bulk_upload/sales/year2023/row_parser.rb @@ -824,6 +824,8 @@ private 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_line2"] = field_21 attributes["town_or_city"] = field_22 diff --git a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb index d881b972b..4cd9e40bc 100644 --- a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb +++ b/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 expect(parser.log.uprn_known).to be(1) + expect(parser.log.uprn_confirmed).to be(1) end end diff --git a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb index 3e6413be7..0139e44f6 100644 --- a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb @@ -539,6 +539,12 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do it "is valid" do expect(parser.errors[:field_19]).to be_blank 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 context "when UPRN not known but address known" do From 2ffa2d632b78c6033adfde3bbd1ad6120ab2e962 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Tue, 16 May 2023 12:13:38 +0100 Subject: [PATCH 4/4] Set proplen_asked based on proplen answer for 23/24 (#1630) --- .../bulk_upload/sales/year2023/row_parser.rb | 3 +- .../sales/year2023/row_parser_spec.rb | 36 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/app/services/bulk_upload/sales/year2023/row_parser.rb b/app/services/bulk_upload/sales/year2023/row_parser.rb index d4cf1ec7e..8082db605 100644 --- a/app/services/bulk_upload/sales/year2023/row_parser.rb +++ b/app/services/bulk_upload/sales/year2023/row_parser.rb @@ -806,7 +806,8 @@ private 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["staircase"] = field_87 attributes["privacynotice"] = field_29 diff --git a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb index 0139e44f6..48a6dab8b 100644 --- a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb @@ -789,5 +789,41 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do expect(parser.log.soctenant).to be(1) 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