From 97b0d841d9e0ee70c73e732e607bf6977f73e478 Mon Sep 17 00:00:00 2001 From: Phil Lee Date: Wed, 8 Mar 2023 16:43:44 +0000 Subject: [PATCH] bulk upload setup error for location --- app/services/bulk_upload/lettings/row_parser.rb | 9 ++++++++- spec/services/bulk_upload/lettings/row_parser_spec.rb | 11 +++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/services/bulk_upload/lettings/row_parser.rb b/app/services/bulk_upload/lettings/row_parser.rb index d59949dcc..ea1ca963a 100644 --- a/app/services/bulk_upload/lettings/row_parser.rb +++ b/app/services/bulk_upload/lettings/row_parser.rb @@ -186,6 +186,7 @@ class BulkUpload::Lettings::RowParser validate :validate_location_related validate :validate_location_exists + validate :validate_location_data_given def valid? errors.clear @@ -244,7 +245,13 @@ private def validate_location_exists if scheme && field_5.present? && location.nil? - errors.add(:field_5, "Location could be found with provided scheme code", category: :setup) + errors.add(:field_5, "Location could be found with provided scheme code") + end + end + + def validate_location_data_given + if bulk_upload.supported_housing? && field_5.blank? + errors.add(:field_5, "The scheme code must be present", category: "setup") end end diff --git a/spec/services/bulk_upload/lettings/row_parser_spec.rb b/spec/services/bulk_upload/lettings/row_parser_spec.rb index 6438d8579..964efd0fb 100644 --- a/spec/services/bulk_upload/lettings/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/row_parser_spec.rb @@ -353,6 +353,17 @@ RSpec.describe BulkUpload::Lettings::RowParser do end describe "#field_5" do + context "when not nullable" do + let(:bulk_upload) { create(:bulk_upload, :lettings, user:, needstype: 2) } + let(:attributes) { { bulk_upload:, field_1: "2", field_5: nil } } + + it "cannot be nulled" do + setup_errors = parser.errors.select { |e| e.options[:category] == "setup" } + + expect(setup_errors.find { |e| e.attribute == :field_5 }).to be_present + end + end + context "when location does not exist" do let(:scheme) { create(:scheme, :with_old_visible_id, owning_organisation: owning_org) } let(:attributes) do