diff --git a/app/models/whois/record.rb b/app/models/whois/record.rb index 943ae8b5a..4c1b28aec 100644 --- a/app/models/whois/record.rb +++ b/app/models/whois/record.rb @@ -8,12 +8,16 @@ module Whois def self.refresh(domain_name) if domain_name.at_auction? + # Remove original record since `Domain#update_whois_record` callback is disabled when + # domain is at auction + find_by(name: domain_name.to_s).try(:destroy!) + create!(name: domain_name, json: { name: domain_name.to_s, - status: 'AtAuction', + status: ['AtAuction'], disclaimer: disclaimer }) elsif domain_name.awaiting_payment? || domain_name.pending_registration? find_by(name: domain_name.to_s).update!(json: { name: domain_name.to_s, - status: 'PendingRegistration', + status: ['PendingRegistration'], disclaimer: disclaimer }) else find_by(name: domain_name.to_s).destroy! diff --git a/test/models/whois/record_test.rb b/test/models/whois/record_test.rb index d4ca58e5c..f15868295 100644 --- a/test/models/whois/record_test.rb +++ b/test/models/whois/record_test.rb @@ -29,7 +29,7 @@ class Whois::RecordTest < ActiveSupport::TestCase whois_record = Whois::Record.last assert_equal 'some.test', whois_record.name assert_equal ({ 'name' => 'some.test', - 'status' => 'AtAuction', + 'status' => ['AtAuction'], 'disclaimer' => 'disclaimer' }), whois_record.json end @@ -45,7 +45,7 @@ class Whois::RecordTest < ActiveSupport::TestCase whois_record = Whois::Record.find_by(name: 'some.test') assert_equal 'some.test', whois_record.name assert_equal ({ 'name' => 'some.test', - 'status' => 'PendingRegistration', + 'status' => ['PendingRegistration'], 'disclaimer' => 'disclaimer' }), whois_record.json end @@ -61,7 +61,7 @@ class Whois::RecordTest < ActiveSupport::TestCase whois_record = Whois::Record.find_by(name: 'some.test') assert_equal 'some.test', whois_record.name assert_equal ({ 'name' => 'some.test', - 'status' => 'PendingRegistration', + 'status' => ['PendingRegistration'], 'disclaimer' => 'disclaimer' }), whois_record.json end end