diff --git a/app/controllers/api/v1/auctions_controller.rb b/app/controllers/api/v1/auctions_controller.rb index c27284b33..bf92be930 100644 --- a/app/controllers/api/v1/auctions_controller.rb +++ b/app/controllers/api/v1/auctions_controller.rb @@ -52,7 +52,7 @@ module Api 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 0381d6241..d2ca9fa50 100644 --- a/app/models/dns/domain_name.rb +++ b/app/models/dns/domain_name.rb @@ -92,7 +92,10 @@ module DNS 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/test/models/dns/domain_name_test.rb b/test/models/dns/domain_name_test.rb index e8b33e316..5d0dd5386 100644 --- a/test/models/dns/domain_name_test.rb +++ b/test/models/dns/domain_name_test.rb @@ -92,6 +92,20 @@ class DNS::DomainNameTest < ActiveSupport::TestCase 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 @@ class DNS::DomainNameTest < ActiveSupport::TestCase 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