mirror of
https://github.com/internetee/registry.git
synced 2025-06-11 23:24:48 +02:00
Merge pull request #1741 from internetee/1740-interactor-force-delete
Refactor ForceDelete procedure to use interactor design pattern
This commit is contained in:
commit
3441387430
15 changed files with 164 additions and 98 deletions
|
@ -1,18 +1,20 @@
|
|||
require 'test_helper'
|
||||
|
||||
class NewDomainForceDeleteTest < ActiveSupport::TestCase
|
||||
class ForceDeleteTest < ActionMailer::TestCase
|
||||
setup do
|
||||
@domain = domains(:shop)
|
||||
Setting.redemption_grace_period = 30
|
||||
ActionMailer::Base.deliveries.clear
|
||||
end
|
||||
|
||||
def test_schedules_force_delete_fast_track
|
||||
assert_not @domain.force_delete_scheduled?
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
|
||||
@domain.schedule_force_delete(type: :fast_track)
|
||||
@domain.schedule_force_delete(type: :fast_track, notify_by_email: true)
|
||||
@domain.reload
|
||||
|
||||
assert_emails 1
|
||||
assert @domain.force_delete_scheduled?
|
||||
assert_equal Date.parse('2010-08-20'), @domain.force_delete_date.to_date
|
||||
assert_equal Date.parse('2010-07-06'), @domain.force_delete_start.to_date
|
||||
|
@ -111,9 +113,12 @@ class NewDomainForceDeleteTest < ActiveSupport::TestCase
|
|||
|
||||
def test_force_delete_cannot_be_scheduled_when_a_domain_is_discarded
|
||||
@domain.update!(statuses: [DomainStatus::DELETE_CANDIDATE])
|
||||
assert_raises StandardError do
|
||||
@domain.schedule_force_delete(type: :fast_track)
|
||||
end
|
||||
result = ForceDeleteInteraction::SetForceDelete.run(domain: @domain, type: :fast_track)
|
||||
|
||||
assert_not result.valid?
|
||||
assert_not @domain.force_delete_scheduled?
|
||||
message = ["Force delete procedure cannot be scheduled while a domain is discarded"]
|
||||
assert_equal message, result.errors.messages[:domain]
|
||||
end
|
||||
|
||||
def test_cancels_force_delete
|
||||
|
|
|
@ -414,7 +414,7 @@ class DomainTest < ActiveSupport::TestCase
|
|||
force_delete_date: nil)
|
||||
@domain.update(template_name: 'legal_person')
|
||||
travel_to Time.zone.parse('2010-07-05')
|
||||
@domain.schedule_force_delete(type: :fast_track)
|
||||
ForceDeleteInteraction::SetForceDelete.run!(domain: @domain, type: :fast_track)
|
||||
assert(@domain.force_delete_scheduled?)
|
||||
other_registrant = Registrant.find_by(code: 'jane-001')
|
||||
@domain.pending_json['new_registrant_id'] = other_registrant.id
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue