added test

This commit is contained in:
olegphenomenon 2022-01-07 11:04:14 +02:00
parent 7ea08518fe
commit e24301ad0c
2 changed files with 91 additions and 1 deletions

View file

@ -43,6 +43,8 @@ class NameserverRecordValidationJob < ApplicationJob
result = NameserverValidator.run(domain_name: domain.name, hostname: nameserver.hostname)
if result[:result]
add_nameserver_to_succesfully(nameserver)
true
else
parse_result(result, nameserver)

View file

@ -5,6 +5,94 @@ class NameserverRecordValidationJobTest < ActiveSupport::TestCase
setup do
@nameserver = nameservers(:shop_ns1)
Spy.on_instance_method(Domains::NameserverValidator, :run).and_return({result: true, reason: ''})
@domain = domains(:shop)
@domain.update(created_at: Time.zone.now - 10.hours)
@domain.reload
end
def test_nameserver_should_validate_succesfully_and_set_validation_datetime
mock_dns_response = OpenStruct.new
answer = OpenStruct.new
answer.serial = '12343'
mock_dns_response.answer = [ answer ]
Spy.on_instance_method(NameserverValidator, :setup_resolver).and_return(Dnsruby::Resolver.new)
Spy.on_instance_method(Dnsruby::Resolver, :query).and_return(mock_dns_response)
assert_nil @nameserver.validation_datetime
assert_nil @nameserver.validation_counter
assert_nil @nameserver.failed_validation_reason
NameserverRecordValidationJob.perform_now(domain_name: @domain.name)
@nameserver.reload
assert_not_nil @nameserver.validation_datetime
assert_nil @nameserver.validation_counter
assert_nil @nameserver.failed_validation_reason
end
def test_should_return_failed_validation_with_answer_reason
mock_dns_response = OpenStruct.new
mock_dns_response.answer = [ ]
Spy.on_instance_method(NameserverValidator, :setup_resolver).and_return(Dnsruby::Resolver.new)
Spy.on_instance_method(Dnsruby::Resolver, :query).and_return(mock_dns_response)
assert_nil @nameserver.validation_datetime
assert_nil @nameserver.validation_counter
assert_nil @nameserver.failed_validation_reason
NameserverRecordValidationJob.perform_now(domain_name: @domain.name)
@nameserver.reload
assert_nil @nameserver.validation_datetime
assert @nameserver.validation_counter, 1
assert @nameserver.failed_validation_reason.include? "No any answer comes from **#{@nameserver.hostname}**"
end
def test_should_return_failed_validation_with_serial_reason
mock_dns_response = OpenStruct.new
answer = OpenStruct.new
answer.some_field = '12343'
mock_dns_response.answer = [ answer ]
Spy.on_instance_method(NameserverValidator, :setup_resolver).and_return(Dnsruby::Resolver.new)
Spy.on_instance_method(Dnsruby::Resolver, :query).and_return(mock_dns_response)
assert_nil @nameserver.validation_datetime
assert_nil @nameserver.validation_counter
assert_nil @nameserver.failed_validation_reason
NameserverRecordValidationJob.perform_now(domain_name: @domain.name)
@nameserver.reload
assert_nil @nameserver.validation_datetime
assert @nameserver.validation_counter, 1
assert @nameserver.failed_validation_reason.include? "Serial number for nameserver hostname **#{@nameserver.hostname}** doesn't present. SOA validation failed."
end
def test_after_third_invalid_times_nameserver_should_be_invalid
mock_dns_response = OpenStruct.new
answer = OpenStruct.new
answer.some_field = '12343'
mock_dns_response.answer = [ answer ]
Spy.on_instance_method(NameserverValidator, :setup_resolver).and_return(Dnsruby::Resolver.new)
Spy.on_instance_method(Dnsruby::Resolver, :query).and_return(mock_dns_response)
assert_nil @nameserver.validation_datetime
assert_nil @nameserver.validation_counter
assert_nil @nameserver.failed_validation_reason
3.times do
NameserverRecordValidationJob.perform_now(domain_name: @domain.name)
end
@nameserver.reload
assert_nil @nameserver.validation_datetime
assert @nameserver.validation_counter, 1
assert @nameserver.failed_validation_reason.include? "Serial number for nameserver hostname **#{@nameserver.hostname}** doesn't present. SOA validation failed."
assert @nameserver.nameserver_failed_validation?
end
end