Add interactor tests

This commit is contained in:
Alex Sherman 2020-11-25 17:01:58 +05:00
parent d406334926
commit 4c7f9f2026
4 changed files with 28 additions and 13 deletions

View file

@ -1,11 +1,11 @@
module DomainDeleteInteraction
class Delete < :Base
class Delete < Base
def execute
::PaperTrail.request.whodunnit = "interaction - #{self.class.name}"
WhoisRecord.where(domain_id: domain.id).destroy_all
domain.destroy
compose(NotifyRegistrar, inputs)
compose(DomainDeleteInteraction::NotifyRegistrar, inputs)
end
end
end

View file

@ -1,5 +1,5 @@
module DomainDeleteInteraction
class NotifyRegistrar < Delete
class NotifyRegistrar < Base
def execute
bye_bye = domain.versions.last
domain.registrar.notifications.create!(

View file

@ -4,15 +4,5 @@ class DomainDeleteJob < Que::Job
domain = Domain.find(domain_id)
DomainDeleteInteraction::Delete.run(domain: domain)
# ::PaperTrail.request.whodunnit = "job - #{self.class.name}"
# WhoisRecord.where(domain_id: domain.id).destroy_all
#
# domain.destroy
# bye_bye = domain.versions.last
# domain.registrar.notifications.create!(
# text: "#{I18n.t(:domain_deleted)}: #{domain.name}",
# attached_obj_id: bye_bye.id,
# attached_obj_type: bye_bye.class.to_s
# )
end
end

View file

@ -0,0 +1,25 @@
require 'test_helper'
class DomainDeleteInteractionDeleteTest < ActiveSupport::TestCase
setup do
@domain = domains(:shop)
end
def test_discards_domains_with_past_delete_date
@domain.update!(delete_date: '2010-07-04')
travel_to Time.zone.parse('2010-07-05')
DomainDeleteInteraction::Delete.run(domain: @domain)
assert @domain.destroyed?
end
def test_sends_notification
@domain.update!(delete_date: '2010-07-04')
travel_to Time.zone.parse('2010-07-05')
assert_difference '@domain.registrar.notifications.count', 1 do
DomainDeleteInteraction::Delete.run(domain: @domain)
end
end
end