From 624cc70bef03776c3c3d5cc325ea8ae63e5cc61c Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Sat, 20 Jan 2018 22:38:14 +0200 Subject: [PATCH] Add Domain#transfer --- app/models/domain.rb | 11 +++++++++++ test/models/domain_test.rb | 16 ++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 test/models/domain_test.rb diff --git a/app/models/domain.rb b/app/models/domain.rb index 6d16d617f..3abcb026a 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -672,6 +672,11 @@ class Domain < ActiveRecord::Base pending_json['new_registrant_id'] end + def transfer(new_registrar) + self.registrar = new_registrar + regenerate_auth_info + end + def self.to_csv CSV.generate do |csv| csv << column_names @@ -705,5 +710,11 @@ class Domain < ActiveRecord::Base def self.uses_zone?(zone) exists?(["name ILIKE ?", "%.#{zone.origin}"]) end + + private + + def regenerate_auth_info + generate_auth_info! + end end # rubocop: enable Metrics/ClassLength diff --git a/test/models/domain_test.rb b/test/models/domain_test.rb new file mode 100644 index 000000000..090fc17a5 --- /dev/null +++ b/test/models/domain_test.rb @@ -0,0 +1,16 @@ +require 'test_helper' + +class DomainTest < ActiveSupport::TestCase + def setup + @domain = domains(:shop) + end + + def test_transfers_domain + old_auth_info = @domain.auth_info + new_registrar = registrars(:goodnames) + @domain.transfer(new_registrar) + + assert_equal new_registrar, @domain.registrar + refute_same @domain.auth_info, old_auth_info + end +end