From 0282a311a7f8aa23bf58e77ba627fee9a2e31245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leandro=20Alem=C3=A3o?= Date: Mon, 21 Oct 2024 14:15:37 +0100 Subject: [PATCH] [CPDLP-3632] Overrides application ukprn from schools table when the school ukprn pulled in from ECF is nil --- app/services/migration/migrators/application.rb | 4 +++- .../migration/migrators/application_spec.rb | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/services/migration/migrators/application.rb b/app/services/migration/migrators/application.rb index 0f69d52a03..b8ec146afe 100644 --- a/app/services/migration/migrators/application.rb +++ b/app/services/migration/migrators/application.rb @@ -72,8 +72,10 @@ def call if ecf_npq_application.school_urn.present? application.school_id = find_school_id!(urn: ecf_npq_application.school_urn) - if application.school.ukprn.to_s == ecf_npq_application.school_ukprn.to_s + if ecf_npq_application.school_ukprn && ecf_npq_application.school_ukprn.to_s == application.school.ukprn.to_s application.ukprn = ecf_npq_application.school_ukprn + elsif ecf_npq_application.school_ukprn.blank? + application.ukprn = application.school.ukprn else ecf_npq_application.errors.add(:base, "School UKPRN does not match") raise ActiveRecord::RecordInvalid, ecf_npq_application diff --git a/spec/services/migration/migrators/application_spec.rb b/spec/services/migration/migrators/application_spec.rb index 37095aac85..547683da66 100644 --- a/spec/services/migration/migrators/application_spec.rb +++ b/spec/services/migration/migrators/application_spec.rb @@ -161,6 +161,19 @@ def setup_failure_state expect(failure_manager).to have_received(:record_failure).once.with(ecf_resource1, /Validation failed: School UKPRN does not match/) end end + + context "when the school ukprn pulled in from ECF is nil" do + before { ecf_resource1.update!(school_ukprn: nil) } + + it "overrides ukprn from Schools table on the NPQ application" do + application = Application.find_by!(ecf_id: ecf_resource1.id) + expect(application.ukprn).to be_nil + + instance.call + + expect(application.reload.ukprn).to eq(application.school.ukprn) + end + end end end end