diff --git a/app/models/admin_domain_contact.rb b/app/models/admin_domain_contact.rb index 7e4b3b28a..7de19a975 100644 --- a/app/models/admin_domain_contact.rb +++ b/app/models/admin_domain_contact.rb @@ -1,6 +1,6 @@ class AdminDomainContact < DomainContact include AgeValidation - + validate :validate_contact_age # rubocop:disable Metrics/AbcSize @@ -33,8 +33,6 @@ class AdminDomainContact < DomainContact def validate_contact_age return unless contact&.underage? - errors.add(:contact, I18n.t( - 'activerecord.errors.models.admin_domain_contact.contact_too_young' - )) + errors.add(:base, :contact_too_young) end end diff --git a/app/models/concerns/age_validation.rb b/app/models/concerns/age_validation.rb index 42e3d7ae7..8bcd8a741 100644 --- a/app/models/concerns/age_validation.rb +++ b/app/models/concerns/age_validation.rb @@ -17,13 +17,17 @@ module AgeValidation def underage_by_birthday? birth_date = Date.parse(ident) calculate_age(birth_date) < 18 + rescue ArgumentError + true end def underage_by_estonian_id? return false unless estonian_id? - + birth_date = parse_estonian_id_birth_date(ident) calculate_age(birth_date) < 18 + rescue ArgumentError + true end def estonian_id? @@ -50,4 +54,4 @@ module AgeValidation Date.parse("#{birth_year}-#{month}-#{day}") end -end \ No newline at end of file +end diff --git a/app/models/domain_contact.rb b/app/models/domain_contact.rb index 4a791493f..ac90d7eef 100644 --- a/app/models/domain_contact.rb +++ b/app/models/domain_contact.rb @@ -3,11 +3,10 @@ class DomainContact < ApplicationRecord # STI: admin_domain_contact include Versions # version/domain_contact_version.rb include EppErrors + belongs_to :contact belongs_to :domain - validates :contact, presence: true - after_destroy :update_contact attr_accessor :value_typeahead attr_writer :contact_code diff --git a/test/models/domain_contact_test.rb b/test/models/domain_contact_test.rb index c41a4243c..b0da9c278 100644 --- a/test/models/domain_contact_test.rb +++ b/test/models/domain_contact_test.rb @@ -20,15 +20,14 @@ class DomainContactTest < ActiveSupport::TestCase ident_type: 'birthday', ident: (Time.zone.now - 16.years).strftime('%Y-%m-%d') ) - + domain_contact = AdminDomainContact.new( domain: domains(:shop), contact: admin_contact ) - + assert_not domain_contact.valid? - assert_includes domain_contact.errors.full_messages, - 'Contact Administrative contact must be at least 18 years old' + assert_includes domain_contact.errors.full_messages, 'Administrative contact must be at least 18 years old' end def test_validates_admin_contact_age_with_estonian_id @@ -38,15 +37,14 @@ class DomainContactTest < ActiveSupport::TestCase ident: '61203150222', ident_country_code: 'EE' ) - + domain_contact = AdminDomainContact.new( domain: domains(:shop), contact: admin_contact ) - + assert_not domain_contact.valid? - assert_includes domain_contact.errors.full_messages, - 'Contact Administrative contact must be at least 18 years old' + assert_includes domain_contact.errors.full_messages, 'Administrative contact must be at least 18 years old' end def test_allows_adult_admin_contact_with_birthday @@ -55,12 +53,12 @@ class DomainContactTest < ActiveSupport::TestCase ident_type: 'birthday', ident: (Time.zone.now - 20.years).strftime('%Y-%m-%d') ) - + domain_contact = AdminDomainContact.new( domain: domains(:shop), contact: admin_contact ) - + assert domain_contact.valid? end @@ -71,13 +69,12 @@ class DomainContactTest < ActiveSupport::TestCase ident: '38903111310', ident_country_code: 'EE' ) - + domain_contact = AdminDomainContact.new( domain: domains(:shop), contact: admin_contact ) - + assert domain_contact.valid? end - -end \ No newline at end of file +end