mirror of
https://github.com/internetee/registry.git
synced 2025-06-11 07:04:47 +02:00
added test
This commit is contained in:
parent
7ea08518fe
commit
e24301ad0c
2 changed files with 91 additions and 1 deletions
|
@ -43,6 +43,8 @@ class NameserverRecordValidationJob < ApplicationJob
|
||||||
result = NameserverValidator.run(domain_name: domain.name, hostname: nameserver.hostname)
|
result = NameserverValidator.run(domain_name: domain.name, hostname: nameserver.hostname)
|
||||||
|
|
||||||
if result[:result]
|
if result[:result]
|
||||||
|
add_nameserver_to_succesfully(nameserver)
|
||||||
|
|
||||||
true
|
true
|
||||||
else
|
else
|
||||||
parse_result(result, nameserver)
|
parse_result(result, nameserver)
|
||||||
|
|
|
@ -5,6 +5,94 @@ class NameserverRecordValidationJobTest < ActiveSupport::TestCase
|
||||||
|
|
||||||
setup do
|
setup do
|
||||||
@nameserver = nameservers(:shop_ns1)
|
@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
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue