mirror of
https://github.com/internetee/registry.git
synced 2025-07-27 13:06:18 +02:00
66 lines
2 KiB
Ruby
66 lines
2 KiB
Ruby
require 'test_helper'
|
|
|
|
class CheckForceDeleteTaskTest < ActiveSupport::TestCase
|
|
include ActiveJob::TestHelper
|
|
|
|
def setup
|
|
@contact = contacts(:john)
|
|
@invalid_contact = contacts(:invalid_email)
|
|
end
|
|
|
|
def test_enque_force_delete_when_three_invalid_records_by_mx
|
|
trumail_results = OpenStruct.new(success: false,
|
|
email: @contact.email,
|
|
domain: 'box.tests',
|
|
errors: { mx: 'target host(s) not found' })
|
|
|
|
Spy.on_instance_method(Actions::EmailCheck, :check_email).and_return(trumail_results)
|
|
Spy.on_instance_method(Actions::AAndAaaaEmailValidation, :call).and_return([])
|
|
|
|
action = Actions::EmailCheck.new(email: @contact.email,
|
|
validation_eventable: @contact,
|
|
check_level: 'mx')
|
|
3.times do
|
|
action.call
|
|
end
|
|
|
|
run_task
|
|
|
|
assert_enqueued_jobs 1
|
|
assert_enqueued_with(job: CheckForceDeleteJob, args: [[@contact.id]])
|
|
end
|
|
|
|
def test_enque_force_delete_when_invalid_record_by_regex
|
|
@invalid_contact.verify_email
|
|
run_task
|
|
|
|
assert_enqueued_jobs 1
|
|
assert_enqueued_with(job: CheckForceDeleteJob, args: [[@invalid_contact.id]])
|
|
end
|
|
|
|
def test_not_enque_force_delete
|
|
trumail_results = OpenStruct.new(success: false,
|
|
email: @contact.email,
|
|
domain: 'box.tests',
|
|
errors: { mx: 'target host(s) not found' })
|
|
|
|
Spy.on_instance_method(Actions::EmailCheck, :check_email).and_return(trumail_results)
|
|
Spy.on_instance_method(Actions::AAndAaaaEmailValidation, :call).and_return([])
|
|
|
|
action = Actions::EmailCheck.new(email: @contact.email,
|
|
validation_eventable: @contact,
|
|
check_level: 'mx')
|
|
2.times do
|
|
action.call
|
|
end
|
|
|
|
run_task
|
|
assert_enqueued_jobs 0
|
|
end
|
|
|
|
private
|
|
|
|
def run_task
|
|
Rake::Task['check_force_delete'].execute
|
|
end
|
|
end
|