diff --git a/app/controllers/api/v1/auctions_controller.rb b/app/controllers/api/v1/auctions_controller.rb index c27284b33a..bf92be9307 100644 --- a/app/controllers/api/v1/auctions_controller.rb +++ b/app/controllers/api/v1/auctions_controller.rb @@ -52,7 +52,7 @@ def serializable_hash_for_update_action(auction) end def update_whois_from_auction(auction) - whois_record = Whois::Record.find_or_create_by(name: auction.domain) do |record| + whois_record = Whois::Record.find_or_create_by!(name: auction.domain) do |record| record.json = {} end diff --git a/app/models/dns/domain_name.rb b/app/models/dns/domain_name.rb index 0381d6241f..d2ca9fa501 100644 --- a/app/models/dns/domain_name.rb +++ b/app/models/dns/domain_name.rb @@ -92,7 +92,10 @@ def pending_auction end def update_whois_from_auction(auction) - whois_record = Whois::Record.find_by!(name: name) + whois_record = Whois::Record.find_or_create_by!(name: name) do |record| + record.json = {} + end + whois_record.update_from_auction(auction) end end diff --git a/app/models/whois/record.rb b/app/models/whois/record.rb index d94c723ad5..ae74224033 100644 --- a/app/models/whois/record.rb +++ b/app/models/whois/record.rb @@ -20,4 +20,4 @@ def update_from_auction(auction) end end end -end \ No newline at end of file +end diff --git a/test/integration/epp/domain/create/auction_idn_test.rb b/test/integration/epp/domain/create/auction_idn_test.rb index 5fa19fd60c..52bc49a989 100644 --- a/test/integration/epp/domain/create/auction_idn_test.rb +++ b/test/integration/epp/domain/create/auction_idn_test.rb @@ -15,7 +15,7 @@ def teardown Domain.release_to_auction = false end - def test_registers_domain_with_ascii_idn_cannot_be_registered_without_registration_code + def test_domain_with_ascii_idn_cannot_be_registered_without_registration_code @idn_auction.update!(status: Auction.statuses[:payment_received], registration_code: "auction001") @@ -53,7 +53,7 @@ def test_registers_domain_with_ascii_idn_cannot_be_registered_without_registrati response_xml.at_css('result msg').text end - def test_registers_domain_with_unicode_idn_cannot_be_registered_without_registration_code + def test_domain_with_unicode_idn_cannot_be_registered_without_registration_code @idn_auction.update!(status: Auction.statuses[:payment_received], registration_code: "auction001") @@ -91,7 +91,7 @@ def test_registers_domain_with_unicode_idn_cannot_be_registered_without_registra response_xml.at_css('result msg').text end - def test_registers_domain_with_ascii_idn_cannot_be_registered_without_winning_the_auction + def test_domain_with_ascii_idn_cannot_be_registered_without_winning_the_auction @idn_auction.started! request_xml = <<-XML @@ -128,7 +128,7 @@ def test_registers_domain_with_ascii_idn_cannot_be_registered_without_winning_th response_xml.at_css('result msg').text end - def test_registers_domain_with_unicode_idn_cannot_be_registered_without_winning_the_auction + def test_domain_with_unicode_idn_cannot_be_registered_without_winning_the_auction @idn_auction.started! request_xml = <<-XML @@ -165,7 +165,7 @@ def test_registers_domain_with_unicode_idn_cannot_be_registered_without_winning_ response_xml.at_css('result msg').text end - def test_registers_domain_with_unicode_idn_cannot_be_registered_without_winning_the_auction + def test_domain_with_unicode_idn_cannot_be_registered_without_winning_the_auction @idn_auction.started! request_xml = <<-XML diff --git a/test/models/dns/domain_name_test.rb b/test/models/dns/domain_name_test.rb index e8b33e316e..5d0dd5386b 100644 --- a/test/models/dns/domain_name_test.rb +++ b/test/models/dns/domain_name_test.rb @@ -92,6 +92,20 @@ def test_selling_at_auction_updates_whois assert_equal Time.zone.parse('2010-07-05 10:00'), @whois_record.updated_at end + def test_selling_at_auction_creates_whois_record + travel_to Time.zone.parse('2010-07-05 10:00') + domain_name = DNS::DomainName.new('new-auction.test') + + domain_name.sell_at_auction + + whois_record = Whois::Record.find_by(name: 'new-auction.test') + assert whois_record + + assert_equal Time.zone.parse('2010-07-05 10:00'), whois_record.updated_at + assert_equal Time.zone.parse('2010-07-05 10:00'), whois_record.created_at + assert_equal ['AtAuction'], whois_record.json['status'] + end + def test_at_auction domain_name = DNS::DomainName.new('auction.test') auctions(:one).update!(domain: 'auction.test', status: Auction.statuses[:started]) @@ -162,4 +176,4 @@ def test_not_auctionable_when_reserved assert_equal 'reserved.test', reserved_domains(:one).name assert_not DNS::DomainName.new('reserved.test').auctionable? end -end \ No newline at end of file +end