From a510ce78fc1fa9490048e92a1239603f4433bce8 Mon Sep 17 00:00:00 2001 From: Nat Dean-Lewis Date: Thu, 19 Mar 2026 15:29:12 +0000 Subject: [PATCH] CLDC-4297: test 0.0 and r explicitly --- .../bulk_upload/sales/year2026/row_parser.rb | 1 - .../sales/year2026/row_parser_spec.rb | 105 ++++++++++++++++++ 2 files changed, 105 insertions(+), 1 deletion(-) diff --git a/app/services/bulk_upload/sales/year2026/row_parser.rb b/app/services/bulk_upload/sales/year2026/row_parser.rb index 097c6e70c..ec3959e53 100644 --- a/app/services/bulk_upload/sales/year2026/row_parser.rb +++ b/app/services/bulk_upload/sales/year2026/row_parser.rb @@ -478,7 +478,6 @@ class BulkUpload::Sales::Year2026::RowParser }, on: :after_log - validate :validate_buyer1_economic_status, on: :before_log validate :validate_buyer2_economic_status, on: :before_log validate :validate_valid_radio_option, on: :before_log diff --git a/spec/services/bulk_upload/sales/year2026/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2026/row_parser_spec.rb index a1d581f8f..988869798 100644 --- a/spec/services/bulk_upload/sales/year2026/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2026/row_parser_spec.rb @@ -1991,9 +1991,44 @@ RSpec.describe BulkUpload::Sales::Year2026::RowParser do end end + context "when set to 0.0" do + let(:attributes) { valid_attributes.merge(field_10: "2", field_107: "0.0") } + + it "adds a validation error" do + parser.valid? + expect(parser.errors[:field_107]).to include(I18n.t("validations.sales.2026.bulk_upload.mscharge.invalid")) + end + + it "sets has_mscharge to no and does not set mscharge" do + log = parser.log + expect(log["has_mscharge"]).to eq(0) + expect(log["mscharge"]).to be_nil + end + end + context "when set to R" do let(:attributes) { valid_attributes.merge(field_10: "2", field_107: "R") } + it "does not add a validation error" do + parser.valid? + expect(parser.errors[:field_107]).to be_blank + end + + it "sets has_mscharge to no and does not set mscharge" do + log = parser.log + expect(log["has_mscharge"]).to eq(0) + expect(log["mscharge"]).to be_nil + end + end + + context "when set to lowercase r" do + let(:attributes) { valid_attributes.merge(field_10: "2", field_107: "r") } + + it "does not add a validation error" do + parser.valid? + expect(parser.errors[:field_107]).to be_blank + end + it "sets has_mscharge to no and does not set mscharge" do log = parser.log expect(log["has_mscharge"]).to eq(0) @@ -2083,9 +2118,44 @@ RSpec.describe BulkUpload::Sales::Year2026::RowParser do end end + context "when set to 0.0" do + let(:attributes) { valid_attributes.merge(field_125: "0.0") } + + it "adds a validation error" do + parser.valid? + expect(parser.errors[:field_125]).to include(I18n.t("validations.sales.2026.bulk_upload.mscharge.invalid")) + end + + it "sets has_mscharge to no and does not set mscharge" do + log = parser.log + expect(log["has_mscharge"]).to eq(0) + expect(log["mscharge"]).to be_nil + end + end + context "when set to R" do let(:attributes) { valid_attributes.merge(field_125: "R") } + it "does not add a validation error" do + parser.valid? + expect(parser.errors[:field_125]).to be_blank + end + + it "sets has_mscharge to no and does not set mscharge" do + log = parser.log + expect(log["has_mscharge"]).to eq(0) + expect(log["mscharge"]).to be_nil + end + end + + context "when set to lowercase r" do + let(:attributes) { valid_attributes.merge(field_125: "r") } + + it "does not add a validation error" do + parser.valid? + expect(parser.errors[:field_125]).to be_blank + end + it "sets has_mscharge to no and does not set mscharge" do log = parser.log expect(log["has_mscharge"]).to eq(0) @@ -2175,9 +2245,44 @@ RSpec.describe BulkUpload::Sales::Year2026::RowParser do end end + context "when set to 0.0" do + let(:attributes) { valid_attributes.merge(field_8: "2", field_136: "0.0") } + + it "adds a validation error" do + parser.valid? + expect(parser.errors[:field_136]).to include(I18n.t("validations.sales.2026.bulk_upload.mscharge.invalid")) + end + + it "sets has_mscharge to no and does not set mscharge" do + log = parser.log + expect(log["has_mscharge"]).to eq(0) + expect(log["mscharge"]).to be_nil + end + end + context "when set to R" do let(:attributes) { valid_attributes.merge(field_8: "2", field_136: "R") } + it "does not add a validation error" do + parser.valid? + expect(parser.errors[:field_136]).to be_blank + end + + it "sets has_mscharge to no and does not set mscharge" do + log = parser.log + expect(log["has_mscharge"]).to eq(0) + expect(log["mscharge"]).to be_nil + end + end + + context "when set to lowercase r" do + let(:attributes) { valid_attributes.merge(field_8: "2", field_136: "r") } + + it "does not add a validation error" do + parser.valid? + expect(parser.errors[:field_136]).to be_blank + end + it "sets has_mscharge to no and does not set mscharge" do log = parser.log expect(log["has_mscharge"]).to eq(0)