mirror of
https://github.com/internetee/registry.git
synced 2025-06-10 14:44: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)
|
||||
|
||||
if result[:result]
|
||||
add_nameserver_to_succesfully(nameserver)
|
||||
|
||||
true
|
||||
else
|
||||
parse_result(result, nameserver)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue