mirror of
https://github.com/internetee/registry.git
synced 2025-07-28 05:26:17 +02:00
Refactored and corrected code for domain force delete
This commit is contained in:
parent
316f00cadc
commit
d3bca1434c
10 changed files with 223 additions and 259 deletions
|
@ -1,7 +1,6 @@
|
|||
require 'test_helper'
|
||||
|
||||
class EmailCheckTest < ActiveSupport::TestCase
|
||||
|
||||
setup do
|
||||
WebMock.disable_net_connect!
|
||||
|
||||
|
@ -9,104 +8,67 @@ class EmailCheckTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
def test_invalid_email_in_mx_level_with_a_and_aaaa_records
|
||||
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::EmailCheck, :check_email).and_return(trumail_result)
|
||||
Spy.on_instance_method(Actions::AAndAaaaEmailValidation, :call).and_return([true])
|
||||
|
||||
action = Actions::EmailCheck.new(email: @contact.email,
|
||||
validation_eventable: @contact,
|
||||
check_level: 'mx')
|
||||
action.call
|
||||
Actions::EmailCheck.new(email: @contact.email,
|
||||
validation_eventable: @contact,
|
||||
check_level: 'mx').call
|
||||
|
||||
assert_equal @contact.validation_events.count, 1
|
||||
assert @contact.validation_events.last.success
|
||||
end
|
||||
|
||||
def test_invalid_email_in_mx_level_with_empty_a_and_aaaa_records
|
||||
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::EmailCheck, :check_email).and_return(trumail_result)
|
||||
Spy.on_instance_method(Actions::AAndAaaaEmailValidation, :call).and_return([])
|
||||
|
||||
action = Actions::EmailCheck.new(email: @contact.email,
|
||||
validation_eventable: @contact,
|
||||
check_level: 'mx')
|
||||
action.call
|
||||
Actions::EmailCheck.new(email: @contact.email,
|
||||
validation_eventable: @contact,
|
||||
check_level: 'mx').call
|
||||
|
||||
assert_equal @contact.validation_events.count, 1
|
||||
refute @contact.validation_events.last.success
|
||||
end
|
||||
|
||||
def test_should_remove_invalid_validation_record_if_there_count_more_than_three
|
||||
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)
|
||||
def test_should_remove_invalid_validation_records_if_there_count_more_than_three
|
||||
Spy.on_instance_method(Actions::EmailCheck, :check_email).and_return(trumail_result)
|
||||
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
|
||||
3.times { action.call }
|
||||
|
||||
assert_equal @contact.validation_events.count, 3
|
||||
refute @contact.validation_events.last.success
|
||||
|
||||
3.times do
|
||||
action.call
|
||||
end
|
||||
3.times { action.call }
|
||||
|
||||
assert_equal @contact.validation_events.count, 3
|
||||
refute @contact.validation_events.last.success
|
||||
end
|
||||
|
||||
def test_should_remove_valid_validation_record_if_there_count_more_than_one
|
||||
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::EmailCheck, :check_email).and_return(trumail_result)
|
||||
Spy.on_instance_method(Actions::AAndAaaaEmailValidation, :call).and_return([true])
|
||||
|
||||
action = Actions::EmailCheck.new(email: @contact.email,
|
||||
validation_eventable: @contact,
|
||||
check_level: 'mx')
|
||||
|
||||
3.times do
|
||||
action.call
|
||||
end
|
||||
3.times { action.call }
|
||||
|
||||
assert_equal @contact.validation_events.count, 1
|
||||
assert @contact.validation_events.last.success
|
||||
end
|
||||
|
||||
def test_should_remove_old_record_if_validation_pass_the_limit
|
||||
trumail_results = OpenStruct.new(success: false,
|
||||
email: @contact.email,
|
||||
domain: "box.tests",
|
||||
errors: {:mx=>"target host(s) not found"})
|
||||
|
||||
action = Actions::EmailCheck.new(email: @contact.email,
|
||||
validation_eventable: @contact,
|
||||
check_level: 'mx')
|
||||
|
||||
action.stub :check_email, trumail_results do
|
||||
action.stub :check_email, trumail_result do
|
||||
4.times do
|
||||
action.call
|
||||
end
|
||||
|
@ -119,17 +81,13 @@ class EmailCheckTest < ActiveSupport::TestCase
|
|||
contact_two = contacts(:william)
|
||||
contact_two.update(email: @contact.email)
|
||||
contact_two.reload
|
||||
trumail_results = OpenStruct.new(success: false,
|
||||
email: @contact.email,
|
||||
domain: "box.tests",
|
||||
errors: {:mx=>"target host(s) not found"})
|
||||
|
||||
action = Actions::EmailCheck.new(email: @contact.email,
|
||||
validation_eventable: @contact,
|
||||
check_level: 'mx')
|
||||
|
||||
action.stub :check_email, trumail_results do
|
||||
4.times do
|
||||
action.stub :check_email, trumail_result do
|
||||
4.times do
|
||||
action.call
|
||||
end
|
||||
end
|
||||
|
@ -137,4 +95,13 @@ class EmailCheckTest < ActiveSupport::TestCase
|
|||
assert_equal @contact.validation_events.count, 3
|
||||
assert_equal contact_two.validation_events.count, 3
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def trumail_result
|
||||
OpenStruct.new(success: false,
|
||||
email: @contact.email,
|
||||
domain: 'box.tests',
|
||||
errors: { mx: 'target host(s) not found' })
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue