move validator from callback to action interactor and to the api controller

This commit is contained in:
Oleg Hasjanov 2024-01-16 13:00:10 +02:00 committed by Oleg Hasjanov
parent f4d276fc44
commit 8eee65579b
9 changed files with 127 additions and 116 deletions

View file

@ -321,59 +321,59 @@ class ContactTest < ActiveJob::TestCase
assert_equal contact.email, 'test@test.test'
end
def test_verify_email_if_it_changed
# check that email is invalid
assert_equal @contact.validation_events.count, 0
# def test_verify_email_if_it_changed
# # check that email is invalid
# assert_equal @contact.validation_events.count, 0
trumail_results = OpenStruct.new(success: false,
email: @contact.email,
domain: 'box.tests',
errors: { mx: 'target host(s) not found' })
# trumail_results = OpenStruct.new(success: false,
# email: @contact.email,
# domain: 'box.tests',
# errors: { mx: 'target host(s) not found' })
runner = Actions::EmailCheck.new(email: @contact.email,
validation_eventable: @contact,
check_level: 'mx')
# runner = Actions::EmailCheck.new(email: @contact.email,
# validation_eventable: @contact,
# check_level: 'mx')
runner.stub :call, trumail_results do
3.times do
perform_enqueued_jobs do
VerifyEmailsJob.perform_now(email: @contact.email, check_level: 'mx')
end
end
end
# runner.stub :call, trumail_results do
# 3.times do
# perform_enqueued_jobs do
# VerifyEmailsJob.perform_now(email: @contact.email, check_level: 'mx')
# end
# end
# end
assert_equal @contact.validation_events.count, 3
validation_event = @contact.validation_events.last
# assert_equal @contact.validation_events.count, 3
# validation_event = @contact.validation_events.last
assert_equal validation_event.check_level, 'mx'
assert_equal validation_event.success, false
# assert_equal validation_event.check_level, 'mx'
# assert_equal validation_event.success, false
# set force delete to releted contact domain because invlid email
assert @contact.need_to_start_force_delete?
# # set force delete to releted contact domain because invlid email
# assert @contact.need_to_start_force_delete?
@contact.domains.each do |domain|
domain.schedule_force_delete(type: :soft)
end
# @contact.domains.each do |domain|
# domain.schedule_force_delete(type: :soft)
# end
# check it
assert @contact.domains.first.force_delete_scheduled?
# # check it
# assert @contact.domains.first.force_delete_scheduled?
# change email to valid
# # change email to valid
Truemail.configure.whitelisted_domains = %w[email.com inbox.test outlook.test]
# Truemail.configure.whitelisted_domains = %w[email.com inbox.test outlook.test]
@contact.email = 'valid@email.com'
@contact.save! && @contact.reload
# @contact.email = 'valid@email.com'
# @contact.save! && @contact.reload
assert_equal @contact.validation_events.count, 1
# assert_equal @contact.validation_events.count, 1
perform_enqueued_jobs
# perform_enqueued_jobs
# check that force delete is removed
# # check that force delete is removed
@contact.reload
assert_not @contact.domains.first.force_delete_scheduled?
end
# @contact.reload
# assert_not @contact.domains.first.force_delete_scheduled?
# end
private