Merge pull request #1485 from internetee/1480-fix-client-hold-task

Add condition on not having clientHold status for force-delete job
This commit is contained in:
Timo Võhmar 2020-01-28 17:33:06 +02:00 committed by GitHub
commit c64f389794
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 2 deletions

View file

@ -25,7 +25,8 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength
def should_notify_on_soft_force_delete?
force_delete_scheduled? && contact_notification_sent_date.blank? &&
force_delete_start.to_date <= Time.zone.now.to_date && force_delete_type.to_sym == :soft
force_delete_start.to_date <= Time.zone.now.to_date && force_delete_type.to_sym == :soft &&
!statuses.include?(DomainStatus::CLIENT_HOLD)
end
def client_holdable?

View file

@ -11,8 +11,9 @@ module Concerns
::Domain.force_delete_scheduled.each do |domain|
proceed_client_hold(domain: domain)
log_end_end_client_hold(domain)
end
log_end_end_force_delete_job
end
def proceed_client_hold(domain:)
@ -24,6 +25,8 @@ module Concerns
domain.save(validate: false)
notify_client_hold(domain)
log_end_end_client_hold(domain)
end
end
end

View file

@ -22,6 +22,12 @@ module Concerns
STDOUT << "#{Time.zone.now.utc} - Successfully set client_hold on (#{domain.name})"
end
def log_end_end_force_delete_job
return if Rails.env.test?
STDOUT << "#{Time.zone.now.utc} - All client_hold setting are done\n"
end
end
end
end

View file

@ -38,4 +38,18 @@ class DomainCronTest < ActiveSupport::TestCase
assert_emails 1
end
def test_does_not_sets_hold_if_already_set
Setting.redemption_grace_period = 30
@domain.update(valid_to: Time.zone.parse('2012-08-05'))
travel_to Time.zone.parse('2010-07-05')
@domain.schedule_force_delete(type: :soft)
@domain.reload
@domain.update(template_name: 'legal_person', statuses: [DomainStatus::CLIENT_HOLD])
travel_to Time.zone.parse('2010-08-06')
DomainCron.start_client_hold
assert_emails 0
end
end