Merge pull request #1123 from internetee/skip-auction-for-blocked-and-reserved-domains

Skip auction for blocked and reserved domains
This commit is contained in:
Timo Võhmar 2019-03-22 18:42:06 +02:00 committed by GitHub
commit 5d61cbf4a8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 45 additions and 1 deletions

View file

@ -36,7 +36,7 @@ module Concerns
def release
if release_to_auction
transaction do
domain_name.sell_at_auction
domain_name.sell_at_auction if domain_name.auctionable?
destroy!
end
else

View file

@ -69,6 +69,10 @@ module DNS
ReservedDomain.where(name: name).any?
end
def auctionable?
!not_auctionable?
end
def to_s
name
end
@ -77,6 +81,10 @@ module DNS
attr_reader :name
def not_auctionable?
blocked? || reserved?
end
def zone_with_same_origin?
DNS::Zone.where(origin: name).any?
end

View file

@ -141,4 +141,22 @@ class DNS::DomainNameTest < ActiveSupport::TestCase
assert domain_name.not_registered?
assert_not domain_name.registered?
end
def test_auctionable_when_not_blocked_or_reserved
domain_name = DNS::DomainName.new('shop.test')
assert_not domain_name.blocked?
assert_not domain_name.reserved?
assert domain_name.auctionable?
end
def test_not_auctionable_when_blocked
assert_equal 'blocked.test', blocked_domains(:one).name
assert_not DNS::DomainName.new('blocked.test').auctionable?
end
def test_not_auctionable_when_reserved
assert_equal 'reserved.test', reserved_domains(:one).name
assert_not DNS::DomainName.new('reserved.test').auctionable?
end
end

View file

@ -22,6 +22,24 @@ class DomainReleasableAuctionableTest < ActiveSupport::TestCase
assert @domain.domain_name.at_auction?
end
def test_skips_auction_when_domains_is_blocked
assert_equal 'shop.test', @domain.name
blocked_domains(:one).update!(name: 'shop.test')
@domain.release
assert_not @domain.domain_name.at_auction?
end
def test_skips_auction_when_domains_is_reserved
assert_equal 'shop.test', @domain.name
reserved_domains(:one).update!(name: 'shop.test')
@domain.release
assert_not @domain.domain_name.at_auction?
end
def test_deletes_registered_domain
@domain.update!(delete_at: Time.zone.parse('2010-07-05 07:59'))
travel_to Time.zone.parse('2010-07-05 08:00')