Create check force delete rake task

This commit is contained in:
Thiago Youssef 2022-05-02 11:50:03 +03:00
parent c246bbaa6d
commit e159821a86
5 changed files with 93 additions and 47 deletions

View file

@ -0,0 +1,46 @@
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: ValidationEventCheckForceDeleteJob, 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: ValidationEventCheckForceDeleteJob, args: [@invalid_contact.id])
end
private
def run_task
Rake::Task['check_force_delete'].execute
end
end