diff --git a/app/models/contact.rb b/app/models/contact.rb index 1143c0e34..11c8bdc8a 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -21,8 +21,6 @@ class Contact < ApplicationRecord alias_attribute :kind, :ident_type alias_attribute :copy_from_id, :original_id # Old attribute name; for PaperTrail - accepts_nested_attributes_for :legal_documents - scope :email_verification_failed, lambda { joins('LEFT JOIN email_address_verifications emv ON contacts.email = emv.email') .where('success = false and verified_at IS NOT NULL') diff --git a/app/models/domain.rb b/app/models/domain.rb index c60d11f3f..b706744bd 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -55,7 +55,6 @@ class Domain < ApplicationRecord accepts_nested_attributes_for :dnskeys, allow_destroy: true has_many :legal_documents, as: :documentable - accepts_nested_attributes_for :legal_documents, reject_if: proc { |attrs| attrs[:body].blank? } has_many :registrant_verifications, dependent: :destroy after_initialize do diff --git a/app/models/legal_document.rb b/app/models/legal_document.rb index 446087124..e4aab5869 100644 --- a/app/models/legal_document.rb +++ b/app/models/legal_document.rb @@ -1,5 +1,4 @@ class LegalDocument < ApplicationRecord - cattr_accessor :explicitly_write_file include EppErrors MIN_BODY_SIZE = (1.37 * 3.kilobytes).ceil @@ -44,7 +43,7 @@ class LegalDocument < ApplicationRecord break unless File.file?(path) end - File.open(path, 'wb') { |f| f.write(binary) } if !Rails.env.test? || self.class.explicitly_write_file + File.open(path, 'wb') { |f| f.write(binary) } unless Rails.env.test? self.path = path self.checksum = digest end diff --git a/config/routes.rb b/config/routes.rb index 1c03129db..2f341866b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -202,7 +202,7 @@ Rails.application.routes.draw do resources :zonefiles resources :zones, controller: 'dns/zones', except: %i[show destroy] - resources :legal_documents + resources :legal_documents, only: :show resources :prices, controller: 'billing/prices', except: %i[show destroy] do member do patch :expire diff --git a/db/migrate/20191219112434_change_legal_documents_path_to_not_null.rb b/db/migrate/20191219112434_change_legal_documents_path_to_not_null.rb new file mode 100644 index 000000000..1198d00f0 --- /dev/null +++ b/db/migrate/20191219112434_change_legal_documents_path_to_not_null.rb @@ -0,0 +1,5 @@ +class ChangeLegalDocumentsPathToNotNull < ActiveRecord::Migration[5.0] + def change + change_column_null :legal_documents, :path, false + end +end diff --git a/db/migrate/20191219124429_change_legal_documents_document_type_to_not_null.rb b/db/migrate/20191219124429_change_legal_documents_document_type_to_not_null.rb new file mode 100644 index 000000000..dc6b86a3e --- /dev/null +++ b/db/migrate/20191219124429_change_legal_documents_document_type_to_not_null.rb @@ -0,0 +1,5 @@ +class ChangeLegalDocumentsDocumentTypeToNotNull < ActiveRecord::Migration[5.0] + def change + change_column_null :legal_documents, :document_type, false + end +end diff --git a/db/structure.sql b/db/structure.sql index 0ce89f0d2..377259100 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -1069,12 +1069,12 @@ ALTER SEQUENCE public.invoices_id_seq OWNED BY public.invoices.id; CREATE TABLE public.legal_documents ( id integer NOT NULL, - document_type character varying, + document_type character varying NOT NULL, documentable_id integer, documentable_type character varying, created_at timestamp without time zone, creator_str character varying, - path character varying, + path character varying NOT NULL, checksum character varying ); @@ -4828,6 +4828,8 @@ INSERT INTO "schema_migrations" (version) VALUES ('20191203083643'), ('20191206183853'), ('20191212133136'), +('20191219112434'), +('20191219124429'), ('20191227110904'), ('20200113091254'), ('20200115102202'), @@ -4849,5 +4851,3 @@ INSERT INTO "schema_migrations" (version) VALUES ('20200811074839'), ('20200812090409'), ('20200812125810'); - - diff --git a/test/fixtures/legal_documents.yml b/test/fixtures/legal_documents.yml new file mode 100644 index 000000000..4de700bd1 --- /dev/null +++ b/test/fixtures/legal_documents.yml @@ -0,0 +1,4 @@ +one: + documentable: shop (Domain) + document_type: pdf + path: some diff --git a/test/integration/epp/domain/delete/base_test.rb b/test/integration/epp/domain/delete/base_test.rb index c7147957c..bfdfa9f75 100644 --- a/test/integration/epp/domain/delete/base_test.rb +++ b/test/integration/epp/domain/delete/base_test.rb @@ -27,7 +27,7 @@ class EppDomainDeleteBaseTest < EppTestCase - dGVzdCBmYWlsCg== + #{'test' * 2000} @@ -35,6 +35,7 @@ class EppDomainDeleteBaseTest < EppTestCase XML post epp_delete_path, params: { frame: request_xml }, headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + # binding.pry assert_includes Domain.find_by(name: 'invalid.test').statuses, DomainStatus::PENDING_DELETE_CONFIRMATION assert_epp_response :completed_successfully_action_pending end @@ -54,7 +55,7 @@ class EppDomainDeleteBaseTest < EppTestCase - dGVzdCBmYWlsCg== + #{'test' * 2000} @@ -82,7 +83,7 @@ class EppDomainDeleteBaseTest < EppTestCase - dGVzdCBmYWlsCg== + #{'test' * 2000} @@ -113,7 +114,7 @@ class EppDomainDeleteBaseTest < EppTestCase - dGVzdCBmYWlsCg== + #{'test' * 2000} @@ -144,7 +145,7 @@ class EppDomainDeleteBaseTest < EppTestCase - dGVzdCBmYWlsCg== + #{'test' * 2000} diff --git a/test/integration/epp/domain/transfer/request_test.rb b/test/integration/epp/domain/transfer/request_test.rb index c7a838ca6..1c3614421 100644 --- a/test/integration/epp/domain/transfer/request_test.rb +++ b/test/integration/epp/domain/transfer/request_test.rb @@ -150,7 +150,7 @@ class EppDomainTransferRequestTest < EppTestCase - test + #{'test' * 2000} diff --git a/test/jobs/domain_update_confirm_job_test.rb b/test/jobs/domain_update_confirm_job_test.rb index 59bbf758d..9cca81eb7 100644 --- a/test/jobs/domain_update_confirm_job_test.rb +++ b/test/jobs/domain_update_confirm_job_test.rb @@ -7,7 +7,7 @@ class DomainUpdateConfirmJobTest < ActiveSupport::TestCase @domain = domains(:shop) @new_registrant = contacts(:william) @user = users(:api_bestnames) - @legal_doc_path = 'test/fixtures/files/legaldoc.pdf' + @legal_doc_path = "#{'test' * 2000}" @domain.update!(pending_json: { new_registrant_id: @new_registrant.id, new_registrant_name: @new_registrant.name, diff --git a/test/models/legal_document_test.rb b/test/models/legal_document_test.rb new file mode 100644 index 000000000..f09c52047 --- /dev/null +++ b/test/models/legal_document_test.rb @@ -0,0 +1,14 @@ +require 'test_helper' + +class LegalDocumentTest < ActiveSupport::TestCase + def test_valid_legal_document_fixture_is_valid + assert valid_legal_document.valid?, proc { valid_legal_document.errors.full_messages } + end + + private + + def valid_legal_document + legal_documents(:one) + end +end +