From 445cff4a29acf1434b8f4c5e72993ff3b4da198c Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 1 Jun 2021 17:52:04 +0500 Subject: [PATCH] Do not create auction on domain release if already exists Closes #2015 --- app/models/dns/domain_name.rb | 2 +- test/models/domain/releasable/auctionable_test.rb | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/models/dns/domain_name.rb b/app/models/dns/domain_name.rb index 1e9cd6587..bceb4433b 100644 --- a/app/models/dns/domain_name.rb +++ b/app/models/dns/domain_name.rb @@ -86,7 +86,7 @@ module DNS attr_reader :name def not_auctionable? - blocked? || reserved? || disputed? + blocked? || reserved? || disputed? || pending_auction.present? end def zone_with_same_origin? diff --git a/test/models/domain/releasable/auctionable_test.rb b/test/models/domain/releasable/auctionable_test.rb index 675ad3c8e..77f355b04 100644 --- a/test/models/domain/releasable/auctionable_test.rb +++ b/test/models/domain/releasable/auctionable_test.rb @@ -32,6 +32,21 @@ class DomainReleasableAuctionableTest < ActiveJob::TestCase assert_not @domain.domain_name.at_auction? end + def test_skips_auction_when_auction_present + assert_equal 'shop.test', @domain.name + Auction.create!(domain: @domain.name, status: Auction.statuses[:started]) + + assert_difference '@domain.registrar.notifications.count', 1 do + assert_no_difference 'Auction.count' do + @domain.release + end + end + + assert_raises ActiveRecord::RecordNotFound do + @domain.reload + end + end + def test_skips_auction_when_domains_is_reserved assert_equal 'shop.test', @domain.name reserved_domains(:one).update!(name: 'shop.test')