mirror of
https://github.com/internetee/registry.git
synced 2025-06-06 20:55:44 +02:00
added tests
This commit is contained in:
parent
3f8a99d8ca
commit
1cc6f2576f
6 changed files with 55 additions and 9 deletions
|
@ -40,7 +40,6 @@ module Domain::RegistryLockable
|
||||||
end
|
end
|
||||||
self.locked_by_registrant_at = nil
|
self.locked_by_registrant_at = nil
|
||||||
self.statuses = admin_store_statuses_history || []
|
self.statuses = admin_store_statuses_history || []
|
||||||
admin_store_statuses_history = nil
|
|
||||||
alert_registrar_lock_changes!(lock: false)
|
alert_registrar_lock_changes!(lock: false)
|
||||||
|
|
||||||
save!
|
save!
|
||||||
|
|
|
@ -12,6 +12,10 @@ class Domain < ApplicationRecord
|
||||||
include Domain::Disputable
|
include Domain::Disputable
|
||||||
include Domain::BulkUpdatable
|
include Domain::BulkUpdatable
|
||||||
|
|
||||||
|
LOCK_STATUSES = [DomainStatus::SERVER_UPDATE_PROHIBITED,
|
||||||
|
DomainStatus::SERVER_DELETE_PROHIBITED,
|
||||||
|
DomainStatus::SERVER_TRANSFER_PROHIBITED].freeze
|
||||||
|
|
||||||
attr_accessor :roles
|
attr_accessor :roles
|
||||||
|
|
||||||
attr_accessor :legal_document_id
|
attr_accessor :legal_document_id
|
||||||
|
@ -557,17 +561,14 @@ class Domain < ApplicationRecord
|
||||||
|
|
||||||
# special handling for admin changing status
|
# special handling for admin changing status
|
||||||
def admin_status_update(update)
|
def admin_status_update(update)
|
||||||
lock_statuses = [DomainStatus::SERVER_UPDATE_PROHIBITED,
|
|
||||||
DomainStatus::SERVER_DELETE_PROHIBITED,
|
|
||||||
DomainStatus::SERVER_TRANSFER_PROHIBITED]
|
|
||||||
# check for deleted status
|
# check for deleted status
|
||||||
update(admin_store_statuses_history: update) unless locked_by_registrant?
|
update(admin_store_statuses_history: update) unless locked_by_registrant?
|
||||||
|
|
||||||
if locked_by_registrant?
|
if locked_by_registrant?
|
||||||
result = update.reject { |status| lock_statuses.include? status }
|
result = update.reject { |status| LOCK_STATUSES.include? status }
|
||||||
update(admin_store_statuses_history: result)
|
update(admin_store_statuses_history: result)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
statuses.each do |s|
|
statuses.each do |s|
|
||||||
unless update.include? s
|
unless update.include? s
|
||||||
case s
|
case s
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
class TransferDataFromDomainStatusesToAdminStatusHistory < ActiveRecord::Migration[6.0]
|
||||||
|
def up
|
||||||
|
domains = Domain.all.select { |d| !d.locked_by_registrant?}
|
||||||
|
domains.each do |domain|
|
||||||
|
domain.admin_store_statuses_history = domain.statuses
|
||||||
|
domain.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
# raise ActiveRecord::IrreversibleMigration
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,2 +1,2 @@
|
||||||
# encoding: UTF-8
|
# encoding: UTF-8
|
||||||
DataMigrate::Data.define(version: 20210406083149)
|
DataMigrate::Data.define(version: 20210407140317)
|
||||||
|
|
|
@ -3,7 +3,6 @@ require 'test_helper'
|
||||||
class DomainRegistryLockableTest < ActiveSupport::TestCase
|
class DomainRegistryLockableTest < ActiveSupport::TestCase
|
||||||
def setup
|
def setup
|
||||||
super
|
super
|
||||||
|
|
||||||
@domain = domains(:airport)
|
@domain = domains(:airport)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -33,6 +32,24 @@ class DomainRegistryLockableTest < ActiveSupport::TestCase
|
||||||
assert_not(@domain.locked_by_registrant?)
|
assert_not(@domain.locked_by_registrant?)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_remove_lockalable_statuses_after_admin_intervention
|
||||||
|
@domain.apply_registry_lock
|
||||||
|
assert @domain.locked_by_registrant?
|
||||||
|
assert_equal @domain.statuses.sort, Domain::RegistryLockable::LOCK_STATUSES.sort
|
||||||
|
|
||||||
|
deleted_status = @domain.statuses - [DomainStatus::SERVER_DELETE_PROHIBITED]
|
||||||
|
@domain.update(statuses: deleted_status)
|
||||||
|
assert_not @domain.locked_by_registrant?
|
||||||
|
|
||||||
|
@domain.apply_registry_lock
|
||||||
|
assert @domain.locked_by_registrant?
|
||||||
|
@domain.remove_registry_lock
|
||||||
|
|
||||||
|
assert_not @domain.statuses.include? DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||||
|
assert_not @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||||
|
assert_not @domain.statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
|
||||||
|
end
|
||||||
|
|
||||||
def test_restore_domain_statuses_after_unlock
|
def test_restore_domain_statuses_after_unlock
|
||||||
@domain.statuses = [DomainStatus::SERVER_UPDATE_PROHIBITED]
|
@domain.statuses = [DomainStatus::SERVER_UPDATE_PROHIBITED]
|
||||||
@domain.admin_store_statuses_history = [DomainStatus::SERVER_UPDATE_PROHIBITED]
|
@domain.admin_store_statuses_history = [DomainStatus::SERVER_UPDATE_PROHIBITED]
|
||||||
|
@ -49,6 +66,22 @@ class DomainRegistryLockableTest < ActiveSupport::TestCase
|
||||||
assert_not @domain.statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
|
assert_not @domain.statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_add_additinal_status_for_locked_domain
|
||||||
|
@domain.apply_registry_lock
|
||||||
|
assert @domain.locked_by_registrant?
|
||||||
|
assert_equal @domain.statuses.sort, Domain::RegistryLockable::LOCK_STATUSES.sort
|
||||||
|
|
||||||
|
@domain.statuses += [DomainStatus::SERVER_RENEW_PROHIBITED]
|
||||||
|
@domain.admin_store_statuses_history = [DomainStatus::SERVER_RENEW_PROHIBITED]
|
||||||
|
@domain.save
|
||||||
|
|
||||||
|
@domain.remove_registry_lock
|
||||||
|
assert @domain.statuses.include? DomainStatus::SERVER_RENEW_PROHIBITED
|
||||||
|
assert_not @domain.statuses.include? DomainStatus::SERVER_UPDATE_PROHIBITED
|
||||||
|
assert_not @domain.statuses.include? DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||||
|
assert_not @domain.statuses.include? DomainStatus::SERVER_DELETE_PROHIBITED
|
||||||
|
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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue