mirror of
https://github.com/internetee/registry.git
synced 2025-06-10 14:44:47 +02:00
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:
commit
1122dd562d
2 changed files with 45 additions and 11 deletions
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue