diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..dab88edcd --- /dev/null +++ b/.dockerignore @@ -0,0 +1,46 @@ +# Git +.git +.gitignore +.github + +# Docker +.dockerignore +Dockerfile* +docker-compose* + +# Rails specific +log/* +tmp/* +storage/* +.bundle +.byebug_history +.rspec +spec/ +test/ +coverage/ +public/assets +public/packs +node_modules +yarn-error.log + +# Environment files +.env* +config/master.key +config/credentials/*.key + +# Documentation +README.md +CHANGELOG.md +LICENSE +docs/ + +# Editor files +.idea/ +.vscode/ +*.swp +*.swo +*~ + +# OS specific +.DS_Store +Thumbs.db diff --git a/Dockerfile.production b/Dockerfile.production index 51e3e2084..40748ac95 100644 --- a/Dockerfile.production +++ b/Dockerfile.production @@ -1,7 +1,6 @@ # Make sure RUBY_VERSION matches the Ruby version in .ruby-version and Gemfile ARG RUBY_VERSION=3.0.3 -ARG TARGETPLATFORM=linux/amd64 -FROM --platform=${TARGETPLATFORM} registry.docker.com/library/ruby:$RUBY_VERSION-slim AS base +FROM registry.docker.com/library/ruby:$RUBY_VERSION-slim AS base # Rails app lives here WORKDIR /opt/webapps/app @@ -77,6 +76,7 @@ RUN apt-get update -qq && \ zip \ unzip \ libzip-dev \ + nodejs \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* 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