mirror of
https://github.com/internetee/registry.git
synced 2025-06-11 15:14: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
|
module Domain::RegistryLockable
|
||||||
extend ActiveSupport::Concern
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
|
LOCK_STATUSES = [DomainStatus::SERVER_UPDATE_PROHIBITED,
|
||||||
|
DomainStatus::SERVER_DELETE_PROHIBITED,
|
||||||
|
DomainStatus::SERVER_TRANSFER_PROHIBITED].freeze
|
||||||
|
|
||||||
def apply_registry_lock
|
def apply_registry_lock
|
||||||
return unless registry_lockable?
|
return unless registry_lockable?
|
||||||
return if locked_by_registrant?
|
return if locked_by_registrant?
|
||||||
|
|
||||||
transaction do
|
transaction do
|
||||||
statuses << DomainStatus::SERVER_UPDATE_PROHIBITED
|
self.statuses |= LOCK_STATUSES
|
||||||
statuses << DomainStatus::SERVER_DELETE_PROHIBITED
|
|
||||||
statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED
|
|
||||||
self.locked_by_registrant_at = Time.zone.now
|
self.locked_by_registrant_at = Time.zone.now
|
||||||
alert_registrar_lock_changes!(lock: true)
|
alert_registrar_lock_changes!(lock: true)
|
||||||
|
|
||||||
|
@ -26,20 +28,16 @@ module Domain::RegistryLockable
|
||||||
def locked_by_registrant?
|
def locked_by_registrant?
|
||||||
return false unless locked_by_registrant_at
|
return false unless locked_by_registrant_at
|
||||||
|
|
||||||
lock_statuses = [DomainStatus::SERVER_UPDATE_PROHIBITED,
|
(statuses & LOCK_STATUSES).count == 3
|
||||||
DomainStatus::SERVER_DELETE_PROHIBITED,
|
|
||||||
DomainStatus::SERVER_TRANSFER_PROHIBITED]
|
|
||||||
|
|
||||||
(statuses & lock_statuses).count == 3
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def remove_registry_lock
|
def remove_registry_lock
|
||||||
return unless locked_by_registrant?
|
return unless locked_by_registrant?
|
||||||
|
|
||||||
transaction do
|
transaction do
|
||||||
statuses.delete(DomainStatus::SERVER_UPDATE_PROHIBITED)
|
LOCK_STATUSES.each do |domain_status|
|
||||||
statuses.delete(DomainStatus::SERVER_DELETE_PROHIBITED)
|
statuses.delete(domain_status)
|
||||||
statuses.delete(DomainStatus::SERVER_TRANSFER_PROHIBITED)
|
end
|
||||||
self.locked_by_registrant_at = nil
|
self.locked_by_registrant_at = nil
|
||||||
alert_registrar_lock_changes!(lock: false)
|
alert_registrar_lock_changes!(lock: false)
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,32 @@ class DomainRegistryLockableTest < ActiveSupport::TestCase
|
||||||
@domain = domains(:airport)
|
@domain = domains(:airport)
|
||||||
end
|
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
|
def test_registry_lock_on_lockable_domain
|
||||||
refute(@domain.locked_by_registrant?)
|
refute(@domain.locked_by_registrant?)
|
||||||
@domain.apply_registry_lock
|
@domain.apply_registry_lock
|
||||||
|
@ -69,4 +95,14 @@ class DomainRegistryLockableTest < ActiveSupport::TestCase
|
||||||
|
|
||||||
refute(@domain.remove_registry_lock)
|
refute(@domain.remove_registry_lock)
|
||||||
end
|
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
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue