diff --git a/app/services/bulk_upload/sales/year2023/row_parser.rb b/app/services/bulk_upload/sales/year2023/row_parser.rb index e70fd4090..149558686 100644 --- a/app/services/bulk_upload/sales/year2023/row_parser.rb +++ b/app/services/bulk_upload/sales/year2023/row_parser.rb @@ -463,6 +463,8 @@ class BulkUpload::Sales::Year2023::RowParser validate :validate_address_fields, on: :after_log validate :validate_if_log_already_exists, on: :after_log, if: -> { FeatureToggle.bulk_upload_duplicate_log_check_enabled? } + validate :validate_data_protection_answered, on: :after_log + def self.question_for_field(field) QUESTIONS[field] end @@ -530,6 +532,12 @@ class BulkUpload::Sales::Year2023::RowParser private + def validate_data_protection_answered + unless field_29 == 1 + errors.add(:field_29, I18n.t("validations.not_answered", question: QUESTIONS[:field_29].downcase), category: :setup) + end + end + def prevtenbuy2 case field_72 when "R" 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 98d88b1f5..fc04dfbcb 100644 --- a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb @@ -238,7 +238,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do it "has errors on correct setup fields" do errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort - expect(errors).to eql(%i[field_1 field_3 field_4 field_5 field_7]) + expect(errors).to eql(%i[field_1 field_29 field_3 field_4 field_5 field_7]) end end @@ -254,7 +254,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do it "has errors on correct setup fields" do errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort - expect(errors).to eql(%i[field_1 field_14 field_3 field_4 field_5 field_8]) + expect(errors).to eql(%i[field_1 field_14 field_29 field_3 field_4 field_5 field_8]) end end @@ -272,7 +272,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do it "has errors on correct setup fields" do errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort - expect(errors).to eql(%i[field_1 field_15 field_3 field_4 field_5]) + expect(errors).to eql(%i[field_1 field_15 field_29 field_3 field_4 field_5]) end end @@ -288,7 +288,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do it "has errors on correct setup fields" do errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort - expect(errors).to eql(%i[field_1 field_14 field_3 field_4 field_5 field_9]) + expect(errors).to eql(%i[field_1 field_14 field_29 field_3 field_4 field_5 field_9]) end end @@ -306,7 +306,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do it "has errors on correct setup fields" do errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort - expect(errors).to eql(%i[field_1 field_3 field_4 field_5 field_7]) + expect(errors).to eql(%i[field_1 field_29 field_3 field_4 field_5 field_7]) end end @@ -322,7 +322,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do it "has errors on correct setup fields" do errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort - expect(errors).to eql(%i[field_1 field_10 field_12 field_13 field_3 field_4 field_5]) + expect(errors).to eql(%i[field_1 field_10 field_12 field_13 field_29 field_3 field_4 field_5]) end end @@ -340,7 +340,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do it "has errors on correct setup fields" do errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort - expect(errors).to eql(%i[field_1 field_11 field_13 field_14 field_3 field_4 field_5]) + expect(errors).to eql(%i[field_1 field_11 field_13 field_14 field_29 field_3 field_4 field_5]) end end @@ -730,6 +730,16 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do end end + describe "#field_29" do # data protection + let(:attributes) { setup_section_params.merge({ field_29: nil }) } + + context "when not answered" do + it "returns a setup error" do + expect(parser.errors.where(:field_29, category: :setup)).to be_present + end + end + end + [ %w[age1_known age1 field_30], %w[age2_known age2 field_38],