diff --git a/app/models/asp/payment_request_validator.rb b/app/models/asp/payment_request_validator.rb index e041ac125..fad6b5a12 100644 --- a/app/models/asp/payment_request_validator.rb +++ b/app/models/asp/payment_request_validator.rb @@ -85,6 +85,8 @@ def check_insee_code return unless student.born_in_france? && student.birthplace_city_insee_code.blank? add_error(:missing_birthplace_city_insee_code) + rescue InseeCountryCodeMapper::UnusableCountryCode + add_error(:unusable_birthplace_country_insee_code) end def check_pfmp_overlaps diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 3515e41a6..097a47d0d 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -104,6 +104,7 @@ fr: missing_biological_sex: "La civilité de l'élève n'est pas renseignée (Homme / Femme). Veuillez faire le nécessaire dans BEE ou COLENTAGRI (Fregata) pour que cette information soit renseignée." missing_birthplace_city_insee_code: "La commune de naissance de l'élève né en France n'est pas renseignée. Veuillez faire le nécessaire dans BEE ou COLENTAGRI (Fregata) pour que cette information soit renseignée." missing_birthplace_country_insee_code: "Le pays de naissance de l'élève né à l'étranger n'est pas renseigné. Veuillez faire le nécessaire dans BEE ou COLENTAGRI (Fregata) pour que cette information soit renseignée." + unusable_birthplace_country_insee_code: "Le code du pays de naissance n'est pas utilisable. Veuillez vérifier l'information dans BEE ou COLENTAGRI (Fregata)." student_type: "L'élève doit avoir un statut scolaire. Causes possibles de blocage : l'élève a un statut d'apprenti, un autre statut, ou le statut n'est pas renseigné." excluded_schooling: "La scolarité mentionnée est exclue de la procédure" missing_rib: "Les coordonnées bancaires sont manquantes" diff --git a/spec/models/asp/payment_request_validator_spec.rb b/spec/models/asp/payment_request_validator_spec.rb index 2fc441509..2f9c84aca 100644 --- a/spec/models/asp/payment_request_validator_spec.rb +++ b/spec/models/asp/payment_request_validator_spec.rb @@ -61,6 +61,19 @@ end end + context "when birthplace country INSEE code is unusable" do + before do + allow(student).to receive(:birthplace_country_insee_code) + .and_raise(InseeCountryCodeMapper::UnusableCountryCode) + end + + it "adds an error" do + expect { validator.send(:check_insee_code) } + .to change { payment_request.errors.details[:ready_state_validation] } + .to include(a_hash_including(error: :unusable_birthplace_country_insee_code)) + end + end + context "when born in France and birthplace city INSEE code is blank" do before do allow(student).to receive(:born_in_france?).and_return(true)