added tests

This commit is contained in:
Oleg Hasjanov 2021-04-08 11:10:14 +03:00
parent 3f8a99d8ca
commit 1cc6f2576f
6 changed files with 55 additions and 9 deletions

View file

@ -40,7 +40,6 @@ module Domain::RegistryLockable
end
self.locked_by_registrant_at = nil
self.statuses = admin_store_statuses_history || []
admin_store_statuses_history = nil
alert_registrar_lock_changes!(lock: false)
save!

View file

@ -12,6 +12,10 @@ class Domain < ApplicationRecord
include Domain::Disputable
include Domain::BulkUpdatable
LOCK_STATUSES = [DomainStatus::SERVER_UPDATE_PROHIBITED,
DomainStatus::SERVER_DELETE_PROHIBITED,
DomainStatus::SERVER_TRANSFER_PROHIBITED].freeze
attr_accessor :roles
attr_accessor :legal_document_id
@ -557,17 +561,14 @@ class Domain < ApplicationRecord
# special handling for admin changing status
def admin_status_update(update)
lock_statuses = [DomainStatus::SERVER_UPDATE_PROHIBITED,
DomainStatus::SERVER_DELETE_PROHIBITED,
DomainStatus::SERVER_TRANSFER_PROHIBITED]
# check for deleted status
update(admin_store_statuses_history: update) unless 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)
end
statuses.each do |s|
unless update.include? s
case s

View file

@ -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

View file

@ -1,2 +1,2 @@
# encoding: UTF-8
DataMigrate::Data.define(version: 20210406083149)
DataMigrate::Data.define(version: 20210407140317)

View file

@ -3,7 +3,6 @@ require 'test_helper'
class DomainRegistryLockableTest < ActiveSupport::TestCase
def setup
super
@domain = domains(:airport)
end
@ -33,6 +32,24 @@ class DomainRegistryLockableTest < ActiveSupport::TestCase
assert_not(@domain.locked_by_registrant?)
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
@domain.statuses = [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
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
refute(@domain.locked_by_registrant?)
@domain.apply_registry_lock