Merge pull request #1887 from internetee/1884-unable-to-apply-registry-lock

Tests: added tests lockable behaviour if status was removed and if status will be added
This commit is contained in:
Timo Võhmar 2021-04-01 16:27:38 +03:00 committed by GitHub
commit 1122dd562d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 45 additions and 11 deletions

View file

@ -1,14 +1,16 @@
module Domain::RegistryLockable
extend ActiveSupport::Concern
LOCK_STATUSES = [DomainStatus::SERVER_UPDATE_PROHIBITED,
DomainStatus::SERVER_DELETE_PROHIBITED,
DomainStatus::SERVER_TRANSFER_PROHIBITED].freeze
def apply_registry_lock
return unless registry_lockable?
return if locked_by_registrant?
transaction do
statuses << DomainStatus::SERVER_UPDATE_PROHIBITED
statuses << DomainStatus::SERVER_DELETE_PROHIBITED
statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED
self.statuses |= LOCK_STATUSES
self.locked_by_registrant_at = Time.zone.now
alert_registrar_lock_changes!(lock: true)
@ -26,20 +28,16 @@ module Domain::RegistryLockable
def locked_by_registrant?
return false unless locked_by_registrant_at
lock_statuses = [DomainStatus::SERVER_UPDATE_PROHIBITED,
DomainStatus::SERVER_DELETE_PROHIBITED,
DomainStatus::SERVER_TRANSFER_PROHIBITED]
(statuses & lock_statuses).count == 3
(statuses & LOCK_STATUSES).count == 3
end
def remove_registry_lock
return unless locked_by_registrant?
transaction do
statuses.delete(DomainStatus::SERVER_UPDATE_PROHIBITED)
statuses.delete(DomainStatus::SERVER_DELETE_PROHIBITED)
statuses.delete(DomainStatus::SERVER_TRANSFER_PROHIBITED)
LOCK_STATUSES.each do |domain_status|
statuses.delete(domain_status)
end
self.locked_by_registrant_at = nil
alert_registrar_lock_changes!(lock: false)

View file

@ -7,6 +7,32 @@ class DomainRegistryLockableTest < ActiveSupport::TestCase
@domain = domains(:airport)
end
def test_user_can_set_lock_for_domain_if_it_has_any_prohibited_status
refute(@domain.locked_by_registrant?)
@domain.update(statuses: [DomainStatus::SERVER_TRANSFER_PROHIBITED])
@domain.apply_registry_lock #Raise validation error
check_statuses_lockable_domain
assert(@domain.locked_by_registrant?)
end
def test_lockable_domain_if_remove_some_prohibited_status
refute(@domain.locked_by_registrant?)
@domain.apply_registry_lock
check_statuses_lockable_domain
assert(@domain.locked_by_registrant?)
statuses = @domain.statuses - [DomainStatus::SERVER_UPDATE_PROHIBITED]
@domain.update(statuses: statuses)
assert @domain.statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
assert @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
assert_not @domain.statuses.include? DomainStatus::SERVER_UPDATE_PROHIBITED
assert_not(@domain.locked_by_registrant?)
end
def test_registry_lock_on_lockable_domain
refute(@domain.locked_by_registrant?)
@domain.apply_registry_lock
@ -69,4 +95,14 @@ class DomainRegistryLockableTest < ActiveSupport::TestCase
refute(@domain.remove_registry_lock)
end
private
def check_statuses_lockable_domain
lock_statuses = [DomainStatus::SERVER_UPDATE_PROHIBITED,
DomainStatus::SERVER_DELETE_PROHIBITED,
DomainStatus::SERVER_TRANSFER_PROHIBITED]
@domain.statuses.include? lock_statuses
end
end