mirror of
https://github.com/internetee/registry.git
synced 2025-05-17 17:59:47 +02:00
Cleaned up rspec create settings and refactored whois_record
This commit is contained in:
parent
acab58b71c
commit
4cf57239a0
32 changed files with 210 additions and 198 deletions
|
@ -9,8 +9,8 @@ group :red_green_refactor, halt_on_fail: true do
|
||||||
# watch(%r{^(config|lib)/.*})
|
# watch(%r{^(config|lib)/.*})
|
||||||
# end
|
# end
|
||||||
|
|
||||||
guard :rspec, cmd: 'spring rspec --fail-fast', notification: false do
|
# guard :rspec, cmd: 'spring rspec --fail-fast', notification: false do
|
||||||
# guard :rspec, cmd: 'spring rspec', notification: false do
|
guard :rspec, cmd: 'spring rspec', notification: false do
|
||||||
watch(%r{^spec/.+_spec\.rb$})
|
watch(%r{^spec/.+_spec\.rb$})
|
||||||
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
||||||
watch('spec/spec_helper.rb') { "spec" }
|
watch('spec/spec_helper.rb') { "spec" }
|
||||||
|
|
|
@ -54,7 +54,6 @@ class Domain < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
after_save :manage_automatic_statuses
|
after_save :manage_automatic_statuses
|
||||||
after_save :update_whois_record
|
after_save :update_whois_record
|
||||||
after_save :update_whois_server
|
|
||||||
|
|
||||||
validates :name_dirty, domain_name: true, uniqueness: true
|
validates :name_dirty, domain_name: true, uniqueness: true
|
||||||
validates :period, numericality: { only_integer: true }
|
validates :period, numericality: { only_integer: true }
|
||||||
|
@ -123,6 +122,7 @@ class Domain < ActiveRecord::Base
|
||||||
|
|
||||||
def included
|
def included
|
||||||
includes(
|
includes(
|
||||||
|
:registrant,
|
||||||
:registrar,
|
:registrar,
|
||||||
:nameservers,
|
:nameservers,
|
||||||
:whois_record,
|
:whois_record,
|
||||||
|
@ -244,15 +244,6 @@ class Domain < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_whois_record
|
def update_whois_record
|
||||||
self.whois_record = WhoisRecord.create if whois_record.blank?
|
whois_record.blank? ? create_whois_record : whois_record.save
|
||||||
whois_record.update
|
|
||||||
end
|
|
||||||
|
|
||||||
def update_whois_server
|
|
||||||
if whois_record.present?
|
|
||||||
whois_record.update_whois_server
|
|
||||||
else
|
|
||||||
logger.info "NO WHOIS BODY for domain: #{name}"
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -37,8 +37,6 @@ class Registrar < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
after_save :touch_domains_version
|
|
||||||
|
|
||||||
validates :email, :billing_email, format: /@/, allow_blank: true
|
validates :email, :billing_email, format: /@/, allow_blank: true
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
|
|
|
@ -1,32 +1,33 @@
|
||||||
class WhoisRecord < ActiveRecord::Base
|
class WhoisRecord < ActiveRecord::Base
|
||||||
belongs_to :domain
|
belongs_to :domain
|
||||||
|
|
||||||
def update_whois_server
|
validates :domain, :name, :body, :json, presence: true
|
||||||
return logger.info "NO WHOIS NAME for whois record id: #{id}" if name.blank?
|
|
||||||
wd = Whois::Record.find_or_initialize_by(name: name)
|
before_validation :populate
|
||||||
wd.body = body
|
def populate
|
||||||
wd.json = json
|
return if domain.blank?
|
||||||
wd.save
|
self.json = generate_json
|
||||||
|
self.name = json['name']
|
||||||
|
self.body = generated_body
|
||||||
end
|
end
|
||||||
|
|
||||||
# rubocop:disable Metrics/MethodLength
|
# rubocop:disable Metrics/MethodLength
|
||||||
def h
|
def generate_json
|
||||||
@h ||= HashWithIndifferentAccess.new
|
h = HashWithIndifferentAccess.new
|
||||||
end
|
return h if domain.blank?
|
||||||
|
|
||||||
def update
|
|
||||||
@disclosed = []
|
@disclosed = []
|
||||||
h[:name] = domain.name
|
h[:name] = domain.name
|
||||||
h[:registrant] = domain.registrant.name
|
h[:registrant] = domain.registrant.name
|
||||||
h[:status] = domain.domain_statuses.map(&:human_value).join(', ')
|
h[:status] = domain.domain_statuses.map(&:human_value).join(', ')
|
||||||
h[:registered] = domain.registered_at and domain.registered_at.to_s(:db)
|
h[:registered] = domain.registered_at.try(:to_s, :iso8601)
|
||||||
h[:updated_at] = domain.updated_at and domain.updated_at.to_s(:db)
|
h[:updated_at] = domain.updated_at.try(:to_s, :iso8601)
|
||||||
h[:valid_to] = domain.valid_to and domain.valid_to.to_s(:db)
|
h[:valid_to] = domain.valid_to.try(:to_s, :iso8601)
|
||||||
|
|
||||||
h[:registrar] = domain.registrar.name
|
h[:registrar] = domain.registrar.name
|
||||||
h[:registrar_phone] = domain.registrar.phone
|
h[:registrar_phone] = domain.registrar.phone
|
||||||
h[:registrar_address] = domain.registrar.address
|
h[:registrar_address] = domain.registrar.address
|
||||||
h[:registrar_update_at] = domain.registrar.updated_at.to_s(:db)
|
h[:registrar_update_at] = domain.registrar.updated_at.try(:to_s, :iso8601)
|
||||||
h[:admin_contacts] = []
|
h[:admin_contacts] = []
|
||||||
domain.admin_contacts.each do |ac|
|
domain.admin_contacts.each do |ac|
|
||||||
@disclosed << [:email, ac.email]
|
@disclosed << [:email, ac.email]
|
||||||
|
@ -34,7 +35,7 @@ class WhoisRecord < ActiveRecord::Base
|
||||||
name: ac.name,
|
name: ac.name,
|
||||||
email: ac.email,
|
email: ac.email,
|
||||||
registrar: ac.registrar.name,
|
registrar: ac.registrar.name,
|
||||||
created_at: ac.created_at.to_s(:db)
|
created_at: ac.created_at.try(:to_s, :iso8601)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
h[:tech_contacts] = []
|
h[:tech_contacts] = []
|
||||||
|
@ -44,23 +45,18 @@ class WhoisRecord < ActiveRecord::Base
|
||||||
name: tc.name,
|
name: tc.name,
|
||||||
email: tc.email,
|
email: tc.email,
|
||||||
registrar: tc.registrar.name,
|
registrar: tc.registrar.name,
|
||||||
created_at: tc.created_at.to_s(:db)
|
created_at: tc.created_at.try(:to_s, :iso8601)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
h[:nameservers] = []
|
h[:nameservers] = []
|
||||||
domain.nameservers.each do |ns|
|
domain.nameservers.each do |ns|
|
||||||
h[:nameservers] << {
|
h[:nameservers] << {
|
||||||
hostname: ns.hostname,
|
hostname: ns.hostname,
|
||||||
updated_at: ns.updated_at.to_s(:db)
|
updated_at: ns.updated_at.try(:to_s, :iso8601)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
h[:disclosed] = @disclosed
|
h[:disclosed] = @disclosed
|
||||||
|
h
|
||||||
self.name = h[:name]
|
|
||||||
self.body = generated_body
|
|
||||||
self.json = h
|
|
||||||
save
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def generated_body
|
def generated_body
|
||||||
|
@ -68,21 +64,21 @@ class WhoisRecord < ActiveRecord::Base
|
||||||
Estonia .ee Top Level Domain WHOIS server
|
Estonia .ee Top Level Domain WHOIS server
|
||||||
|
|
||||||
Domain:
|
Domain:
|
||||||
name: #{h[:name]}
|
name: #{json['name']}
|
||||||
registrant: #{h[:registrant]}
|
registrant: #{json['registrant']}
|
||||||
status: #{h[:status]}
|
status: #{json['status']}
|
||||||
registered: #{h[:registered]}
|
registered: #{Time.zone.parse(json['registered'])}
|
||||||
changed: #{h[:updated_at]}
|
changed: #{Time.zone.parse(json['updated_at'])}
|
||||||
expire: #{h[:valid_to]}
|
expire: #{Time.zone.parse(json['valid_to'])}
|
||||||
outzone:
|
outzone:
|
||||||
delete:
|
delete:
|
||||||
#{contacts_body(h[:admin_contacts], h[:tech_contacts])}
|
#{contacts_body(json['admin_contacts'], json['tech_contacts'])}
|
||||||
Registrar:
|
Registrar:
|
||||||
name: #{h[:registrar]}
|
name: #{json['registrar']}
|
||||||
phone: #{h[:registrar_phone]}
|
phone: #{json['registrar_phone']}
|
||||||
address: #{h[:registrar_address]}
|
address: #{json['registrar_address']}
|
||||||
changed: #{h[:registrar_update_at]}
|
changed: #{Time.zone.parse(json['registrar_update_at'])}
|
||||||
#{nameservers_body(h[:nameservers])}
|
#{nameservers_body(json['nameservers'])}
|
||||||
Estonia .ee Top Level Domain WHOIS server
|
Estonia .ee Top Level Domain WHOIS server
|
||||||
More information at http://internet.ee
|
More information at http://internet.ee
|
||||||
EOS
|
EOS
|
||||||
|
@ -90,34 +86,47 @@ More information at http://internet.ee
|
||||||
# rubocop:enable Metrics/MethodLength
|
# rubocop:enable Metrics/MethodLength
|
||||||
|
|
||||||
def contacts_body(admins, techs)
|
def contacts_body(admins, techs)
|
||||||
|
admins ||= []
|
||||||
|
techs ||= []
|
||||||
|
|
||||||
out = ''
|
out = ''
|
||||||
out << (admins.size > 1 ? "\nAdministrative contacts" : "\nAdministrative contact")
|
out << (admins.size > 1 ? "\nAdministrative contacts" : "\nAdministrative contact")
|
||||||
admins.each do |c|
|
admins.each do |c|
|
||||||
out << "\n name: #{c[:name]}"
|
out << "\n name: #{c['name']}"
|
||||||
out << "\n email: Not Disclosed - Visit www.internet.ee for webbased WHOIS"
|
out << "\n email: Not Disclosed - Visit www.internet.ee for webbased WHOIS"
|
||||||
out << "\n registrar: #{c[:registrar]}"
|
out << "\n registrar: #{c['registrar']}"
|
||||||
out << "\n created: #{c[:created_at]}"
|
out << "\n created: #{Time.zone.parse(c['created_at'])}"
|
||||||
out << "\n"
|
out << "\n"
|
||||||
end
|
end
|
||||||
|
|
||||||
out << (techs.size > 1 ? "\nTechnical contacts" : "\nTechnical contact:")
|
out << (techs.size > 1 ? "\nTechnical contacts" : "\nTechnical contact:")
|
||||||
techs.each do |c|
|
techs.each do |c|
|
||||||
out << "\n name: #{c[:name]}"
|
out << "\n name: #{c['name']}"
|
||||||
out << "\n email: Not Disclosed - Visit www.internet.ee for webbased WHOIS"
|
out << "\n email: Not Disclosed - Visit www.internet.ee for webbased WHOIS"
|
||||||
out << "\n registrar: #{c[:registrar]}"
|
out << "\n registrar: #{c['registrar']}"
|
||||||
out << "\n created: #{c[:created_at]}"
|
out << "\n created: #{Time.zone.parse(c['created_at'])}"
|
||||||
out << "\n"
|
out << "\n"
|
||||||
end
|
end
|
||||||
out
|
out
|
||||||
end
|
end
|
||||||
|
|
||||||
def nameservers_body(nservers)
|
def nameservers_body(nservers)
|
||||||
|
nservers ||= []
|
||||||
|
|
||||||
out = "\nName servers:"
|
out = "\nName servers:"
|
||||||
nservers.each do |ns|
|
nservers.each do |ns|
|
||||||
out << "\n nserver: #{ns[:hostname]}"
|
out << "\n nserver: #{ns['hostname']}"
|
||||||
out << "\n changed: #{ns[:updated_at]}"
|
out << "\n changed: #{Time.zone.parse(ns['updated_at'])}"
|
||||||
out << "\n"
|
out << "\n"
|
||||||
end
|
end
|
||||||
out
|
out
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def update_whois_server
|
||||||
|
return logger.info "NO WHOIS NAME for whois record id: #{id}" if name.blank?
|
||||||
|
wd = Whois::Record.find_or_initialize_by(name: name)
|
||||||
|
wd.body = body
|
||||||
|
wd.json = json
|
||||||
|
wd.save
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,7 +2,6 @@ require 'rails_helper'
|
||||||
|
|
||||||
describe 'EPP Contact', epp: true do
|
describe 'EPP Contact', epp: true do
|
||||||
before :all do
|
before :all do
|
||||||
create_settings
|
|
||||||
@registrar1 = Fabricate(:registrar1)
|
@registrar1 = Fabricate(:registrar1)
|
||||||
@registrar2 = Fabricate(:registrar2)
|
@registrar2 = Fabricate(:registrar2)
|
||||||
@epp_xml = EppXml::Contact.new(cl_trid: 'ABC-12345')
|
@epp_xml = EppXml::Contact.new(cl_trid: 'ABC-12345')
|
||||||
|
|
|
@ -2,7 +2,6 @@ require 'rails_helper'
|
||||||
|
|
||||||
describe 'EPP Domain', epp: true do
|
describe 'EPP Domain', epp: true do
|
||||||
before(:all) do
|
before(:all) do
|
||||||
create_settings
|
|
||||||
@epp_xml = EppXml.new(cl_trid: 'ABC-12345')
|
@epp_xml = EppXml.new(cl_trid: 'ABC-12345')
|
||||||
@registrar1 = Fabricate(:registrar1)
|
@registrar1 = Fabricate(:registrar1)
|
||||||
@registrar2 = Fabricate(:registrar2)
|
@registrar2 = Fabricate(:registrar2)
|
||||||
|
|
|
@ -2,7 +2,6 @@ require 'rails_helper'
|
||||||
|
|
||||||
describe 'EPP Keyrelay', epp: true do
|
describe 'EPP Keyrelay', epp: true do
|
||||||
before(:all) do
|
before(:all) do
|
||||||
create_settings
|
|
||||||
@registrar1 = Fabricate(:registrar1)
|
@registrar1 = Fabricate(:registrar1)
|
||||||
@registrar2 = Fabricate(:registrar2)
|
@registrar2 = Fabricate(:registrar2)
|
||||||
@domain = Fabricate(:domain, registrar: @registrar2)
|
@domain = Fabricate(:domain, registrar: @registrar2)
|
||||||
|
|
|
@ -18,8 +18,6 @@ describe 'EPP Poll', epp: true do
|
||||||
login_as :registrar1
|
login_as :registrar1
|
||||||
|
|
||||||
@uniq_no = proc { @i ||= 0; @i += 1 }
|
@uniq_no = proc { @i ||= 0; @i += 1 }
|
||||||
|
|
||||||
create_settings
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns no messages in poll' do
|
it 'returns no messages in poll' do
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
feature 'Admin users', type: :feature do
|
feature 'Admin users', type: :feature do
|
||||||
background { create_settings }
|
|
||||||
|
|
||||||
before :all do
|
before :all do
|
||||||
@admin_user = Fabricate(:admin_user, username: 'user1', identity_code: '37810013087')
|
@admin_user = Fabricate(:admin_user, username: 'user1', identity_code: '37810013087')
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
feature 'Api users', type: :feature do
|
feature 'Api users', type: :feature do
|
||||||
background { create_settings }
|
|
||||||
|
|
||||||
before :all do
|
before :all do
|
||||||
@user = Fabricate(:admin_user, username: 'user1', identity_code: '37810013087')
|
@user = Fabricate(:admin_user, username: 'user1', identity_code: '37810013087')
|
||||||
@api_user = Fabricate(:api_user)
|
@api_user = Fabricate(:api_user)
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
feature 'Admin contact', type: :feature do
|
feature 'Admin contact', type: :feature do
|
||||||
background { create_settings }
|
|
||||||
|
|
||||||
before :all do
|
before :all do
|
||||||
@user = Fabricate(:admin_user, username: 'user1', identity_code: '37810013087')
|
@user = Fabricate(:admin_user, username: 'user1', identity_code: '37810013087')
|
||||||
@contact = Fabricate(:contact, name: 'Mr John')
|
@contact = Fabricate(:contact, name: 'Mr John')
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
feature 'EPP log', type: :feature do
|
feature 'EPP log', type: :feature do
|
||||||
background { create_settings }
|
|
||||||
|
|
||||||
before :all do
|
before :all do
|
||||||
@user = Fabricate(:admin_user, username: 'user1', identity_code: '37810013087')
|
@user = Fabricate(:admin_user, username: 'user1', identity_code: '37810013087')
|
||||||
@contact = Fabricate(:contact, name: 'Mr John')
|
@contact = Fabricate(:contact, name: 'Mr John')
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
feature 'Invoice', type: :feature do
|
feature 'Invoice', type: :feature do
|
||||||
background { create_settings }
|
|
||||||
|
|
||||||
before :all do
|
before :all do
|
||||||
@user = Fabricate(:admin_user, username: 'user1', identity_code: '37810013087')
|
@user = Fabricate(:admin_user, username: 'user1', identity_code: '37810013087')
|
||||||
Fabricate(:invoice)
|
Fabricate(:invoice)
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
feature 'Repp log', type: :feature do
|
feature 'Repp log', type: :feature do
|
||||||
background { create_settings }
|
|
||||||
|
|
||||||
before :all do
|
before :all do
|
||||||
@user = Fabricate(:admin_user, username: 'user1', identity_code: '37810013087')
|
@user = Fabricate(:admin_user, username: 'user1', identity_code: '37810013087')
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
feature 'Zonefile settings', type: :feature do
|
feature 'Zonefile settings', type: :feature do
|
||||||
background { create_settings }
|
|
||||||
|
|
||||||
before :all do
|
before :all do
|
||||||
@user = Fabricate(:admin_user, username: 'user1', identity_code: '37810013087')
|
@user = Fabricate(:admin_user, username: 'user1', identity_code: '37810013087')
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,7 +2,6 @@ require 'rails_helper'
|
||||||
|
|
||||||
feature 'Contact', type: :feature do
|
feature 'Contact', type: :feature do
|
||||||
before :all do
|
before :all do
|
||||||
create_settings
|
|
||||||
@user = Fabricate(:api_user)
|
@user = Fabricate(:api_user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@ require 'rails_helper'
|
||||||
|
|
||||||
feature 'Domains', type: :feature do
|
feature 'Domains', type: :feature do
|
||||||
before :all do
|
before :all do
|
||||||
create_settings
|
|
||||||
@user = Fabricate(:api_user)
|
@user = Fabricate(:api_user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@ require 'rails_helper'
|
||||||
|
|
||||||
feature 'Invoices', type: :feature do
|
feature 'Invoices', type: :feature do
|
||||||
before :all do
|
before :all do
|
||||||
create_settings
|
|
||||||
@user = Fabricate(:api_user)
|
@user = Fabricate(:api_user)
|
||||||
@invoice = Fabricate(:invoice, buyer: @user.registrar)
|
@invoice = Fabricate(:invoice, buyer: @user.registrar)
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,7 +2,6 @@ require 'rails_helper'
|
||||||
|
|
||||||
feature 'Root', type: :feature do
|
feature 'Root', type: :feature do
|
||||||
before :all do
|
before :all do
|
||||||
create_settings
|
|
||||||
Fabricate(:api_user)
|
Fabricate(:api_user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@ require 'rails_helper'
|
||||||
|
|
||||||
feature 'Sessions', type: :feature do
|
feature 'Sessions', type: :feature do
|
||||||
before :all do
|
before :all do
|
||||||
create_settings
|
|
||||||
Fabricate(:api_user)
|
Fabricate(:api_user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@ require 'rails_helper'
|
||||||
|
|
||||||
feature 'Sessions', type: :feature do
|
feature 'Sessions', type: :feature do
|
||||||
before :all do
|
before :all do
|
||||||
create_settings
|
|
||||||
Fabricate(:ee_user)
|
Fabricate(:ee_user)
|
||||||
@registrar1 = Fabricate(:registrar1)
|
@registrar1 = Fabricate(:registrar1)
|
||||||
@registrar2 = Fabricate(:registrar2)
|
@registrar2 = Fabricate(:registrar2)
|
||||||
|
|
|
@ -3,8 +3,6 @@ require 'rails_helper'
|
||||||
feature 'Setting management', type: :feature do
|
feature 'Setting management', type: :feature do
|
||||||
let(:user) { Fabricate(:admin_user, username: 'user1', identity_code: '37810013087') }
|
let(:user) { Fabricate(:admin_user, username: 'user1', identity_code: '37810013087') }
|
||||||
|
|
||||||
background { create_settings }
|
|
||||||
|
|
||||||
scenario 'User changes a setting' do
|
scenario 'User changes a setting' do
|
||||||
sign_in user
|
sign_in user
|
||||||
visit admin_settings_path
|
visit admin_settings_path
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
describe Dnskey do
|
describe Dnskey do
|
||||||
before :all do
|
|
||||||
create_settings
|
|
||||||
end
|
|
||||||
|
|
||||||
it { should belong_to(:domain) }
|
it { should belong_to(:domain) }
|
||||||
|
|
||||||
context 'with invalid attribute' do
|
context 'with invalid attribute' do
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
describe Domain do
|
describe Domain do
|
||||||
before :all do
|
|
||||||
create_settings
|
|
||||||
end
|
|
||||||
|
|
||||||
it { should belong_to(:registrar) }
|
it { should belong_to(:registrar) }
|
||||||
it { should have_many(:nameservers) }
|
it { should have_many(:nameservers) }
|
||||||
it { should belong_to(:registrant) }
|
it { should belong_to(:registrant) }
|
||||||
|
@ -81,77 +77,6 @@ describe Domain do
|
||||||
@domain.whois_record.json.present?.should == true
|
@domain.whois_record.json.present?.should == true
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should have whois record present by default' do
|
|
||||||
@domain.name = 'yeah.ee'
|
|
||||||
@domain.updated_at = Time.zone.parse('2020.02.02 02:00')
|
|
||||||
@domain.registered_at = Time.zone.parse('2000.01.01 9:00')
|
|
||||||
@domain.valid_to = Time.zone.parse('2016.04.21 0:00')
|
|
||||||
registrar = Fabricate(:registrar,
|
|
||||||
name: 'First Registrar Ltd',
|
|
||||||
created_at: Time.zone.parse('1995.01.01'),
|
|
||||||
updated_at: Time.zone.parse('1996.01.01'))
|
|
||||||
@domain.registrant = Fabricate(:contact,
|
|
||||||
name: 'Jarren Jakubowski0',
|
|
||||||
created_at: Time.zone.parse('2005.01.01'))
|
|
||||||
@domain.admin_contacts = [Fabricate(:contact,
|
|
||||||
name: 'First Admin',
|
|
||||||
registrar: registrar,
|
|
||||||
created_at: Time.zone.parse('2016.01.01'))]
|
|
||||||
@domain.tech_contacts = [Fabricate(:contact,
|
|
||||||
name: 'First Tech',
|
|
||||||
registrar: registrar,
|
|
||||||
created_at: Time.zone.parse('2016.01.01'))]
|
|
||||||
@domain.registrar = registrar
|
|
||||||
ns1 = Fabricate(:nameserver, hostname: 'test.ee')
|
|
||||||
ns1.updated_at = Time.zone.parse('1980.01.01')
|
|
||||||
ns2 = Fabricate(:nameserver, hostname: 'test1.ee')
|
|
||||||
ns2.updated_at = Time.zone.parse('1970.01.01')
|
|
||||||
@domain.nameservers = [ns1, ns2]
|
|
||||||
|
|
||||||
@domain.update_whois_record
|
|
||||||
@domain.whois_record.body.should == <<-EOS
|
|
||||||
Estonia .ee Top Level Domain WHOIS server
|
|
||||||
|
|
||||||
Domain:
|
|
||||||
name: yeah.ee
|
|
||||||
registrant: Jarren Jakubowski0
|
|
||||||
status: ok (paid and in zone)
|
|
||||||
registered: 2000-01-01 09:00:00 UTC
|
|
||||||
changed: 2020-02-02 02:00:00 UTC
|
|
||||||
expire: 2016-04-21 00:00:00 UTC
|
|
||||||
outzone:
|
|
||||||
delete:
|
|
||||||
|
|
||||||
Administrative contact
|
|
||||||
name: First Admin
|
|
||||||
email: Not Disclosed - Visit www.internet.ee for webbased WHOIS
|
|
||||||
registrar: First Registrar Ltd
|
|
||||||
created: 2016-01-01 00:00:00
|
|
||||||
|
|
||||||
Technical contact:
|
|
||||||
name: First Tech
|
|
||||||
email: Not Disclosed - Visit www.internet.ee for webbased WHOIS
|
|
||||||
registrar: First Registrar Ltd
|
|
||||||
created: 2016-01-01 00:00:00
|
|
||||||
|
|
||||||
Registrar:
|
|
||||||
name: First Registrar Ltd
|
|
||||||
phone:
|
|
||||||
address: Street 999, Town, County, Postal
|
|
||||||
changed: 1996-01-01 00:00:00
|
|
||||||
|
|
||||||
Name servers:
|
|
||||||
nserver: test.ee
|
|
||||||
changed: 1980-01-01 00:00:00
|
|
||||||
|
|
||||||
nserver: test1.ee
|
|
||||||
changed: 1970-01-01 00:00:00
|
|
||||||
|
|
||||||
Estonia .ee Top Level Domain WHOIS server
|
|
||||||
More information at http://internet.ee
|
|
||||||
EOS
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'with versioning' do
|
context 'with versioning' do
|
||||||
it 'should not have one version' do
|
it 'should not have one version' do
|
||||||
with_versioning do
|
with_versioning do
|
||||||
|
|
|
@ -3,9 +3,5 @@ require 'rails_helper'
|
||||||
describe Epp::Domain do
|
describe Epp::Domain do
|
||||||
context 'with sufficient settings' do
|
context 'with sufficient settings' do
|
||||||
let(:domain) { Fabricate(:epp_domain) }
|
let(:domain) { Fabricate(:epp_domain) }
|
||||||
|
|
||||||
before(:each) do
|
|
||||||
create_settings
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,7 +2,6 @@ require 'rails_helper'
|
||||||
|
|
||||||
describe Setting do
|
describe Setting do
|
||||||
it 'returns value' do
|
it 'returns value' do
|
||||||
create_settings
|
|
||||||
expect(Setting.ns_min_count).to eq(2)
|
expect(Setting.ns_min_count).to eq(2)
|
||||||
Setting.ns_min_count = '2'
|
Setting.ns_min_count = '2'
|
||||||
expect(Setting.ns_min_count).to eq('2')
|
expect(Setting.ns_min_count).to eq('2')
|
||||||
|
|
127
spec/models/whois_record_spec.rb
Normal file
127
spec/models/whois_record_spec.rb
Normal file
|
@ -0,0 +1,127 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe WhoisRecord do
|
||||||
|
context 'with invalid attribute' do
|
||||||
|
before :all do
|
||||||
|
@whois_record = WhoisRecord.new
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should not be valid' do
|
||||||
|
@whois_record.valid?
|
||||||
|
@whois_record.errors.full_messages.should match_array([
|
||||||
|
"Body is missing",
|
||||||
|
"Domain is missing",
|
||||||
|
"Json is missing",
|
||||||
|
"Name is missing"
|
||||||
|
])
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should not support versions' do
|
||||||
|
@whois_record.respond_to?(:versions).should == false
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should not have whois body' do
|
||||||
|
@whois_record.body.should == nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with valid attributes' do
|
||||||
|
before :all do
|
||||||
|
@whois_record = Fabricate(:domain).whois_record
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should be valid' do
|
||||||
|
@whois_record.valid?
|
||||||
|
@whois_record.errors.full_messages.should match_array([])
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should be valid twice' do
|
||||||
|
@whois_record = Fabricate(:domain).whois_record
|
||||||
|
@whois_record.valid?
|
||||||
|
@whois_record.errors.full_messages.should match_array([])
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should have whois body by default' do
|
||||||
|
@whois_record.body.present?.should == true
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should have whois json by default' do
|
||||||
|
@whois_record.json.present?.should == true
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should have whois record present by default' do
|
||||||
|
@domain = Fabricate(:domain, name: 'yeah.ee')
|
||||||
|
@domain.updated_at = Time.zone.parse('2020.02.02 02:00')
|
||||||
|
@domain.valid_to = Time.zone.parse('2016.04.21 0:00')
|
||||||
|
registrar = Fabricate(:registrar,
|
||||||
|
name: 'First Registrar Ltd',
|
||||||
|
created_at: Time.zone.parse('1995.01.01'),
|
||||||
|
updated_at: Time.zone.parse('1996.01.01'))
|
||||||
|
@domain.registrant = Fabricate(:contact,
|
||||||
|
name: 'Jarren Jakubowski0',
|
||||||
|
created_at: Time.zone.parse('2005.01.01'))
|
||||||
|
@domain.admin_contacts = [Fabricate(:contact,
|
||||||
|
name: 'First Admin',
|
||||||
|
registrar: registrar,
|
||||||
|
created_at: Time.zone.parse('2016.01.01'))]
|
||||||
|
@domain.tech_contacts = [Fabricate(:contact,
|
||||||
|
name: 'First Tech',
|
||||||
|
registrar: registrar,
|
||||||
|
created_at: Time.zone.parse('2016.01.01'))]
|
||||||
|
@domain.registrar = registrar
|
||||||
|
ns1 = Fabricate(:nameserver, hostname: 'test.ee')
|
||||||
|
ns1.updated_at = Time.zone.parse('1980.01.01')
|
||||||
|
ns2 = Fabricate(:nameserver, hostname: 'test1.ee')
|
||||||
|
ns2.updated_at = Time.zone.parse('1970.01.01')
|
||||||
|
@domain.nameservers = [ns1, ns2]
|
||||||
|
|
||||||
|
@domain.save
|
||||||
|
|
||||||
|
# load some very dynamic attributes
|
||||||
|
registered = @domain.whois_record.json['registered']
|
||||||
|
changed = @domain.whois_record.json['updated_at']
|
||||||
|
|
||||||
|
@domain.whois_record.body.should == <<-EOS
|
||||||
|
Estonia .ee Top Level Domain WHOIS server
|
||||||
|
|
||||||
|
Domain:
|
||||||
|
name: yeah.ee
|
||||||
|
registrant: Jarren Jakubowski0
|
||||||
|
status: ok (paid and in zone)
|
||||||
|
registered: #{Time.zone.parse(registered)}
|
||||||
|
changed: #{Time.zone.parse(changed)}
|
||||||
|
expire: 2016-04-21 00:00:00 UTC
|
||||||
|
outzone:
|
||||||
|
delete:
|
||||||
|
|
||||||
|
Administrative contact
|
||||||
|
name: First Admin
|
||||||
|
email: Not Disclosed - Visit www.internet.ee for webbased WHOIS
|
||||||
|
registrar: First Registrar Ltd
|
||||||
|
created: 2016-01-01 00:00:00 UTC
|
||||||
|
|
||||||
|
Technical contact:
|
||||||
|
name: First Tech
|
||||||
|
email: Not Disclosed - Visit www.internet.ee for webbased WHOIS
|
||||||
|
registrar: First Registrar Ltd
|
||||||
|
created: 2016-01-01 00:00:00 UTC
|
||||||
|
|
||||||
|
Registrar:
|
||||||
|
name: First Registrar Ltd
|
||||||
|
phone:
|
||||||
|
address: Street 999, Town, County, Postal
|
||||||
|
changed: 1996-01-01 00:00:00 UTC
|
||||||
|
|
||||||
|
Name servers:
|
||||||
|
nserver: test.ee
|
||||||
|
changed: 1980-01-01 00:00:00 UTC
|
||||||
|
|
||||||
|
nserver: test1.ee
|
||||||
|
changed: 1970-01-01 00:00:00 UTC
|
||||||
|
|
||||||
|
Estonia .ee Top Level Domain WHOIS server
|
||||||
|
More information at http://internet.ee
|
||||||
|
EOS
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,7 +1,6 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
describe ZonefileSetting do
|
describe ZonefileSetting do
|
||||||
before { create_settings }
|
|
||||||
it 'generates the zonefile' do
|
it 'generates the zonefile' do
|
||||||
ZonefileSetting.where({
|
ZonefileSetting.where({
|
||||||
origin: 'ee',
|
origin: 'ee',
|
||||||
|
|
|
@ -26,6 +26,28 @@ Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
|
||||||
# If you are not using ActiveRecord, you can remove this line.
|
# If you are not using ActiveRecord, you can remove this line.
|
||||||
ActiveRecord::Migration.maintain_test_schema!
|
ActiveRecord::Migration.maintain_test_schema!
|
||||||
|
|
||||||
|
# create general settings
|
||||||
|
def create_settings
|
||||||
|
Setting.ds_algorithm = 2
|
||||||
|
Setting.ds_data_allowed = true
|
||||||
|
Setting.ds_data_with_key_allowed = true
|
||||||
|
Setting.key_data_allowed = true
|
||||||
|
|
||||||
|
Setting.dnskeys_min_count = 0
|
||||||
|
Setting.dnskeys_max_count = 9
|
||||||
|
Setting.ns_min_count = 2
|
||||||
|
Setting.ns_max_count = 11
|
||||||
|
|
||||||
|
Setting.transfer_wait_time = 0
|
||||||
|
|
||||||
|
Setting.admin_contacts_min_count = 1
|
||||||
|
Setting.admin_contacts_max_count = 10
|
||||||
|
Setting.tech_contacts_min_count = 0
|
||||||
|
Setting.tech_contacts_max_count = 10
|
||||||
|
|
||||||
|
Setting.client_side_status_editing_enabled = true
|
||||||
|
end
|
||||||
|
|
||||||
RSpec.configure do |config|
|
RSpec.configure do |config|
|
||||||
config.filter_run focus: true
|
config.filter_run focus: true
|
||||||
config.run_all_when_everything_filtered = true
|
config.run_all_when_everything_filtered = true
|
||||||
|
@ -45,21 +67,26 @@ RSpec.configure do |config|
|
||||||
|
|
||||||
config.before(:all) do
|
config.before(:all) do
|
||||||
DatabaseCleaner.clean_with(:truncation)
|
DatabaseCleaner.clean_with(:truncation)
|
||||||
|
create_settings
|
||||||
end
|
end
|
||||||
|
|
||||||
config.before(:all, epp: true) do
|
config.before(:all, epp: true) do
|
||||||
DatabaseCleaner.strategy = nil
|
DatabaseCleaner.strategy = nil
|
||||||
|
create_settings
|
||||||
end
|
end
|
||||||
|
|
||||||
config.before(:each, js: true) do
|
config.before(:each, js: true) do
|
||||||
DatabaseCleaner.strategy = :truncation
|
DatabaseCleaner.strategy = :truncation
|
||||||
|
create_settings
|
||||||
end
|
end
|
||||||
|
|
||||||
config.before(:each, type: :request) do
|
config.before(:each, type: :request) do
|
||||||
DatabaseCleaner.strategy = :truncation
|
DatabaseCleaner.strategy = :truncation
|
||||||
|
create_settings
|
||||||
end
|
end
|
||||||
|
|
||||||
config.before(:each, type: :model) do
|
config.before(:each, type: :model) do
|
||||||
|
create_settings
|
||||||
DatabaseCleaner.strategy = :transaction
|
DatabaseCleaner.strategy = :transaction
|
||||||
DatabaseCleaner.start
|
DatabaseCleaner.start
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,7 +2,6 @@ require 'rails_helper'
|
||||||
|
|
||||||
describe Repp::ContactV1 do
|
describe Repp::ContactV1 do
|
||||||
before :all do
|
before :all do
|
||||||
create_settings
|
|
||||||
@api_user = Fabricate(:gitlab_api_user)
|
@api_user = Fabricate(:gitlab_api_user)
|
||||||
Fabricate.times(2, :contact, registrar: @api_user.registrar)
|
Fabricate.times(2, :contact, registrar: @api_user.registrar)
|
||||||
Fabricate.times(2, :contact)
|
Fabricate.times(2, :contact)
|
||||||
|
|
|
@ -2,7 +2,6 @@ require 'rails_helper'
|
||||||
|
|
||||||
describe Repp::DomainV1 do
|
describe Repp::DomainV1 do
|
||||||
before :all do
|
before :all do
|
||||||
create_settings
|
|
||||||
@registrar1 = Fabricate(:registrar1)
|
@registrar1 = Fabricate(:registrar1)
|
||||||
@api_user = Fabricate(:gitlab_api_user, registrar: @registrar1)
|
@api_user = Fabricate(:gitlab_api_user, registrar: @registrar1)
|
||||||
Fabricate.times(2, :domain, registrar: @api_user.registrar)
|
Fabricate.times(2, :domain, registrar: @api_user.registrar)
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
module General
|
|
||||||
def create_settings
|
|
||||||
Setting.ds_algorithm = 2
|
|
||||||
Setting.ds_data_allowed = true
|
|
||||||
Setting.ds_data_with_key_allowed = true
|
|
||||||
Setting.key_data_allowed = true
|
|
||||||
|
|
||||||
Setting.dnskeys_min_count = 0
|
|
||||||
Setting.dnskeys_max_count = 9
|
|
||||||
Setting.ns_min_count = 2
|
|
||||||
Setting.ns_max_count = 11
|
|
||||||
|
|
||||||
Setting.transfer_wait_time = 0
|
|
||||||
|
|
||||||
Setting.admin_contacts_min_count = 1
|
|
||||||
Setting.admin_contacts_max_count = 10
|
|
||||||
Setting.tech_contacts_min_count = 0
|
|
||||||
Setting.tech_contacts_max_count = 10
|
|
||||||
|
|
||||||
Setting.client_side_status_editing_enabled = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
RSpec.configure do |c|
|
|
||||||
c.include General
|
|
||||||
end
|
|
Loading…
Add table
Add a link
Reference in a new issue