diff --git a/app/forms/idv/doc_pii_form.rb b/app/forms/idv/doc_pii_form.rb index e9eb97c01fc..35e1a81d2a7 100644 --- a/app/forms/idv/doc_pii_form.rb +++ b/app/forms/idv/doc_pii_form.rb @@ -11,7 +11,13 @@ class DocPiiForm message: proc { I18n.t('doc_auth.errors.general.no_liveness') } } - validate :zipcode_valid? + validates :zipcode, format: { + with: /\A[0-9]{5}(?:-[0-9]{4})?\z/, + message: proc { + I18n.t('doc_auth.errors.general.no_liveness') + }, + } + validates :jurisdiction, inclusion: { in: Idp::Constants::STATE_AND_TERRITORY_CODES, message: proc { I18n.t('doc_auth.errors.general.no_liveness') @@ -82,12 +88,6 @@ def dob_valid? end end - def zipcode_valid? - return if zipcode.is_a?(String) && zipcode.present? - - errors.add(:zipcode, generic_error, type: :zipcode) - end - def generic_error I18n.t('doc_auth.errors.general.no_liveness') end diff --git a/spec/forms/idv/doc_pii_form_spec.rb b/spec/forms/idv/doc_pii_form_spec.rb index eb8487fc3b2..f339e7aea35 100644 --- a/spec/forms/idv/doc_pii_form_spec.rb +++ b/spec/forms/idv/doc_pii_form_spec.rb @@ -43,14 +43,14 @@ state: Faker::Address.state_abbr, } end - let(:non_string_zipcode_pii) do + let(:invalid_zipcode_pii) do { first_name: Faker::Name.first_name, last_name: Faker::Name.last_name, dob: valid_dob, address1: Faker::Address.street_address, state: Faker::Address.state_abbr, - zipcode: 12345, + zipcode: 123456, state_id_jurisdiction: 'AL', } end @@ -174,7 +174,7 @@ end context 'when there is a non-string zipcode' do - let(:pii) { non_string_zipcode_pii } + let(:pii) { invalid_zipcode_pii } it 'returns a single generic pii error' do result = subject.submit