From b8e25aaedf7b94f289f3c870b8fcba7cd3cf3395 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Mon, 19 Jun 2023 17:22:28 +0100 Subject: [PATCH] feat: add tests --- .../lettings/year2022/row_parser_spec.rb | 31 ++++++++++++++++++- .../lettings/year2023/row_parser_spec.rb | 31 ++++++++++++++++++- .../sales/year2022/row_parser_spec.rb | 13 ++++++++ .../sales/year2023/row_parser_spec.rb | 13 ++++++++ 4 files changed, 86 insertions(+), 2 deletions(-) diff --git a/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb index 9c9e2d4e6..041a9265a 100644 --- a/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb @@ -649,7 +649,7 @@ RSpec.describe BulkUpload::Lettings::Year2022::RowParser do end end - describe "#field_68 - 70" do + describe "#field_68 - 74" do context "when not homeless but reasonable preference for homelessness" do let(:attributes) { { bulk_upload:, field_68: "1", field_69: "1", field_70: "1" } } @@ -657,6 +657,18 @@ RSpec.describe BulkUpload::Lettings::Year2022::RowParser do expect(parser.errors[:field_70]).to be_present end end + + context "when there is a reasonable preference but none is given" do + let(:attributes) { { bulk_upload:, field_69: "1", field_70: nil, field_71: nil, field_72: nil, field_73: nil, field_74: nil } } + + it "is not permitted" do + expect(parser.errors[:field_70]).to be_present + expect(parser.errors[:field_71]).to be_present + expect(parser.errors[:field_72]).to be_present + expect(parser.errors[:field_73]).to be_present + expect(parser.errors[:field_74]).to be_present + end + end end describe "#field_78" do # referral @@ -978,6 +990,23 @@ RSpec.describe BulkUpload::Lettings::Year2022::RowParser do expect(parser.errors[:field_128]).not_to be_present end end + + context "when illness but no illnesses answered" do + let(:attributes) { { bulk_upload:, field_118: "1", field_119: nil, field_120: nil, field_121: nil, field_122: nil, field_123: nil, field_124: nil, field_125: nil, field_126: nil, field_127: nil, field_128: nil } } + + it "errors added to correct fields" do + expect(parser.errors[:field_119]).to be_present + expect(parser.errors[:field_120]).to be_present + expect(parser.errors[:field_121]).to be_present + expect(parser.errors[:field_122]).to be_present + expect(parser.errors[:field_123]).to be_present + expect(parser.errors[:field_124]).to be_present + expect(parser.errors[:field_125]).to be_present + expect(parser.errors[:field_126]).to be_present + expect(parser.errors[:field_127]).to be_present + expect(parser.errors[:field_128]).to be_present + end + end end describe "#field_134" do # renewal 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 4418f85e4..d8df99a2e 100644 --- a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb @@ -706,9 +706,26 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do expect(parser.errors[:field_99]).not_to be_present end end + + context "when illness but no illnesses answered" do + let(:attributes) { { bulk_upload:, field_89: "1", field_90: nil, field_91: nil, field_92: nil, field_93: nil, field_94: nil, field_95: nil, field_96: nil, field_97: nil, field_98: nil, field_99: nil } } + + it "errors added to correct fields" do + expect(parser.errors[:field_90]).to be_present + expect(parser.errors[:field_91]).to be_present + expect(parser.errors[:field_92]).to be_present + expect(parser.errors[:field_93]).to be_present + expect(parser.errors[:field_94]).to be_present + expect(parser.errors[:field_95]).to be_present + expect(parser.errors[:field_96]).to be_present + expect(parser.errors[:field_97]).to be_present + expect(parser.errors[:field_98]).to be_present + expect(parser.errors[:field_99]).to be_present + end + end end - describe "#field_105, field_110 - 11" do + describe "#field_105, field_110 - 15" do context "when not homeless but reasonable preference for homelessness" do let(:attributes) { { bulk_upload:, field_105: "1", field_110: "1", field_111: "1" } } @@ -716,6 +733,18 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do expect(parser.errors[:field_111]).to be_present end end + + context "when there is a reasonable preference but none is given" do + let(:attributes) { { bulk_upload:, field_110: "1", field_111: nil, field_112: nil, field_113: nil, field_114: nil, field_115: nil } } + + it "is not permitted" do + expect(parser.errors[:field_111]).to be_present + expect(parser.errors[:field_112]).to be_present + expect(parser.errors[:field_113]).to be_present + expect(parser.errors[:field_114]).to be_present + expect(parser.errors[:field_115]).to be_present + end + end end describe "#field_119" do # referral diff --git a/spec/services/bulk_upload/sales/year2022/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2022/row_parser_spec.rb index 9da1fbe79..f14ec9d6c 100644 --- a/spec/services/bulk_upload/sales/year2022/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2022/row_parser_spec.rb @@ -349,6 +349,19 @@ RSpec.describe BulkUpload::Sales::Year2022::RowParser do end end + describe "#field_44 - 7" do # buyers organisations + context "when all nil" do + let(:attributes) { setup_section_params.merge(field_44: nil, field_45: nil, field_46: nil, field_47: nil) } + + it "returns correct errors" do + expect(parser.errors[:field_44]).to be_present + expect(parser.errors[:field_45]).to be_present + expect(parser.errors[:field_46]).to be_present + expect(parser.errors[:field_47]).to be_present + end + end + end + describe "#field_57" do # type of shared ownership scheme context "when an invalid option" do let(:attributes) { setup_section_params.merge(field_57: "100", field_113: "1") } 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 545efd0f5..a04b9822d 100644 --- a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb @@ -857,6 +857,19 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do end end + describe "#field_67 - 70" do # buyers organisations + context "when all nil" do + let(:attributes) { setup_section_params.merge(field_67: nil, field_68: nil, field_69: nil, field_70: nil) } + + it "returns correct errors" do + expect(parser.errors[:field_67]).to be_present + expect(parser.errors[:field_68]).to be_present + expect(parser.errors[:field_69]).to be_present + expect(parser.errors[:field_70]).to be_present + end + end + end + describe "soft validations" do context "when soft validation is triggered" do let(:attributes) { valid_attributes.merge({ field_30: 22, field_35: 5 }) }