Browse Source

data protection must be answered correctly

pull/1633/head
Phil Lee 3 years ago
parent
commit
0d6bcf628d
  1. 8
      app/services/bulk_upload/sales/year2023/row_parser.rb
  2. 24
      spec/services/bulk_upload/sales/year2023/row_parser_spec.rb

8
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_address_fields, on: :after_log
validate :validate_if_log_already_exists, on: :after_log, if: -> { FeatureToggle.bulk_upload_duplicate_log_check_enabled? } 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) def self.question_for_field(field)
QUESTIONS[field] QUESTIONS[field]
end end
@ -530,6 +532,12 @@ class BulkUpload::Sales::Year2023::RowParser
private 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 def prevtenbuy2
case field_72 case field_72
when "R" when "R"

24
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 it "has errors on correct setup fields" do
errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort 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
end end
@ -254,7 +254,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do
it "has errors on correct setup fields" do it "has errors on correct setup fields" do
errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort 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
end end
@ -272,7 +272,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do
it "has errors on correct setup fields" do it "has errors on correct setup fields" do
errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort 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
end end
@ -288,7 +288,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do
it "has errors on correct setup fields" do it "has errors on correct setup fields" do
errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort 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
end end
@ -306,7 +306,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do
it "has errors on correct setup fields" do it "has errors on correct setup fields" do
errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort 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
end end
@ -322,7 +322,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do
it "has errors on correct setup fields" do it "has errors on correct setup fields" do
errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort 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
end end
@ -340,7 +340,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do
it "has errors on correct setup fields" do it "has errors on correct setup fields" do
errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute).sort 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
end end
@ -730,6 +730,16 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do
end end
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[age1_known age1 field_30],
%w[age2_known age2 field_38], %w[age2_known age2 field_38],

Loading…
Cancel
Save