mirror of
https://github.com/internetee/registry.git
synced 2025-07-24 11:38:30 +02:00
Merge branch 'master' of github.com:internetee/registry
This commit is contained in:
commit
ebb389248e
16 changed files with 340 additions and 56 deletions
|
@ -80,18 +80,6 @@ describe 'EPP Contact', epp: true do
|
|||
expect(id.text.length).to eq(8)
|
||||
# 5 seconds for what-ever weird lag reasons might happen
|
||||
expect(cr_date.text.to_time).to be_within(5).of(Time.now)
|
||||
|
||||
end
|
||||
|
||||
it 'does not create duplicate contact', pending: true do
|
||||
Fabricate(:contact, code: 'sh8013')
|
||||
|
||||
response = epp_request(contact_create_xml, :xml)
|
||||
|
||||
expect(response[:result_code]).to eq('2302')
|
||||
expect(response[:msg]).to eq('Contact id already exists')
|
||||
|
||||
expect(Contact.count).to eq(1)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -115,16 +103,6 @@ describe 'EPP Contact', epp: true do
|
|||
expect(response[:result_code]).to eq('2201')
|
||||
end
|
||||
|
||||
it 'stamps updated_by succesfully', pending: true do
|
||||
Fabricate(:contact, code: 'sh8013', created_by_id: zone.id)
|
||||
|
||||
expect(Contact.first.updated_by_id).to be nil
|
||||
|
||||
epp_request(contact_update_xml, :xml)
|
||||
|
||||
expect(Contact.first.updated_by_id).to eq 2
|
||||
end
|
||||
|
||||
it 'is succesful' do
|
||||
Fabricate(
|
||||
:contact,
|
||||
|
|
|
@ -7,13 +7,12 @@ end
|
|||
|
||||
describe Address, '.extract_params' do
|
||||
|
||||
# TODO: please fix
|
||||
it 'returns params hash', pending: true do
|
||||
it 'returns params hash' do
|
||||
Fabricate(:country, iso: 'EE')
|
||||
ph = { postalInfo: { name: 'fred', addr: { cc: 'EE', city: 'Village', street: %w(street1 street2) } } }
|
||||
expect(Address.extract_attributes(ph[:postalInfo])).to eq({
|
||||
address_attributes: {
|
||||
country_id: 1,
|
||||
country_id: Country.find_by(iso: 'EE').id,
|
||||
city: 'Village',
|
||||
street: 'street1',
|
||||
street2: 'street2'
|
||||
|
|
|
@ -96,4 +96,33 @@ describe Domain do
|
|||
expect(d.auth_info).to_not be_empty
|
||||
end
|
||||
end
|
||||
|
||||
with_versioning do
|
||||
context 'when not saved' do
|
||||
it 'does not create domain version' do
|
||||
Fabricate.build(:domain)
|
||||
expect(DomainVersion.count).to eq(0)
|
||||
end
|
||||
|
||||
it 'does not create child versions' do
|
||||
Fabricate.build(:domain)
|
||||
expect(ContactVersion.count).to eq(0)
|
||||
expect(NameserverVersion.count).to eq(0)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when saved' do
|
||||
before(:each) do
|
||||
# Fabricate(:domain_validation_setting_group)
|
||||
# Fabricate(:dnskeys_setting_group)
|
||||
Fabricate(:domain)
|
||||
end
|
||||
|
||||
it 'creates domain version' do
|
||||
expect(DomainVersion.count).to eq(1)
|
||||
expect(ContactVersion.count).to eq(2)
|
||||
expect(NameserverVersion.count).to eq(3)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
141
spec/models/domain_version_spec.rb
Normal file
141
spec/models/domain_version_spec.rb
Normal file
|
@ -0,0 +1,141 @@
|
|||
require 'rails_helper'
|
||||
|
||||
describe DomainVersion do
|
||||
with_versioning do
|
||||
before(:each) do
|
||||
Setting.ns_min_count = 1
|
||||
Fabricate(:domain, name: 'version.ee', dnskeys: []) do
|
||||
owner_contact { Fabricate(:contact, name: 'owner_contact', code: 'asd', email: 'owner1@v.ee') }
|
||||
nameservers(count: 1) { Fabricate(:nameserver, hostname: 'ns.test.ee') }
|
||||
admin_contacts(count: 1) { Fabricate(:contact, name: 'admin_contact 1', code: 'qwe', email: 'admin1@v.ee') }
|
||||
tech_contacts(count: 1) { Fabricate(:contact, name: 'tech_contact 1', code: 'zxc', email: 'tech1@v.ee') }
|
||||
end
|
||||
end
|
||||
|
||||
context 'when domain is created' do
|
||||
it('creates a domain version') { expect(DomainVersion.count).to eq(1) }
|
||||
it('has a snapshot') { expect(DomainVersion.first.snapshot).not_to be_empty }
|
||||
it 'has a snapshot with correct info' do
|
||||
expect(DomainVersion.last.load_snapshot).to eq({
|
||||
admin_contacts: [{ name: 'admin_contact 1', phone: '+372.12345678',
|
||||
code: 'qwe', ident: '37605030299', email: 'admin1@v.ee' }],
|
||||
domain: { name: 'version.ee', status: nil },
|
||||
nameservers: [{ hostname: 'ns.test.ee', ipv4: nil, ipv6: nil }],
|
||||
owner_contact: { name: 'owner_contact', phone: '+372.12345678',
|
||||
code: 'asd', ident: '37605030299', email: 'owner1@v.ee' },
|
||||
tech_contacts: [{ name: 'tech_contact 1', phone: '+372.12345678',
|
||||
code: 'zxc', ident: '37605030299', email: 'tech1@v.ee' }]
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
context 'when domain is deleted' do
|
||||
it 'creates a version' do
|
||||
expect(DomainVersion.count).to eq(1)
|
||||
Domain.first.destroy
|
||||
expect(DomainVersion.count).to eq(2)
|
||||
expect(DomainVersion.last.load_snapshot).to eq({
|
||||
admin_contacts: [],
|
||||
domain: { name: 'version.ee', status: nil },
|
||||
nameservers: [],
|
||||
owner_contact: { name: 'owner_contact', phone: '+372.12345678',
|
||||
code: 'asd', ident: '37605030299', email: 'owner1@v.ee' },
|
||||
tech_contacts: []
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
context 'when adding child' do
|
||||
it 'contact creates a version' do
|
||||
expect(DomainVersion.count).to eq(1)
|
||||
expect(Domain.last.tech_contacts.count).to eq(1)
|
||||
Domain.last.tech_contacts << Fabricate(:contact, name: 'tech contact 2', phone: '+371.12345678',
|
||||
code: '123', email: 'tech2@v.ee')
|
||||
expect(Domain.last.tech_contacts.count).to eq(2)
|
||||
expect(DomainVersion.count).to eq(2)
|
||||
end
|
||||
|
||||
it 'nameserver creates a version' do
|
||||
expect(DomainVersion.count).to eq(1)
|
||||
expect(Domain.last.nameservers.count).to eq(1)
|
||||
Domain.last.nameservers << Fabricate(:nameserver, hostname: 'ns.server.ee', created_at: Time.now - 20)
|
||||
expect(DomainVersion.count).to eq(2)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when removing child' do
|
||||
it('has one domain version before events') { expect(DomainVersion.count).to eq(1) }
|
||||
|
||||
it 'contact creates a version' do
|
||||
expect(DomainVersion.count).to eq(1)
|
||||
DomainContact.last.destroy
|
||||
expect(Domain.last.valid?).to be(true)
|
||||
expect(DomainVersion.count).to eq(2)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context 'when deleting child' do
|
||||
it 'contact creates a version' do
|
||||
expect(DomainVersion.count).to eq(1)
|
||||
Contact.find_by(name: 'tech_contact 1').destroy
|
||||
expect(DomainVersion.count).to eq(2)
|
||||
expect(DomainVersion.last.load_snapshot).to eq({
|
||||
admin_contacts: [{ name: 'admin_contact 1', phone: '+372.12345678',
|
||||
code: 'qwe', ident: '37605030299', email: 'admin1@v.ee' }],
|
||||
domain: { name: 'version.ee', status: nil },
|
||||
nameservers: [{ hostname: 'ns.test.ee', ipv4: nil, ipv6: nil }],
|
||||
owner_contact: { name: 'owner_contact', phone: '+372.12345678',
|
||||
code: 'asd', ident: '37605030299', email: 'owner1@v.ee' },
|
||||
tech_contacts: []
|
||||
})
|
||||
end
|
||||
|
||||
it 'nameserver creates a version' do
|
||||
Domain.last.nameservers << Fabricate(:nameserver, created_at: Time.now - 30)
|
||||
Domain.last.nameservers.last.destroy
|
||||
expect(DomainVersion.count).to eq(3)
|
||||
expect(Domain.last.nameservers.count).to eq(1)
|
||||
expect(DomainVersion.last.load_snapshot).to eq(
|
||||
admin_contacts: [{ name: 'admin_contact 1', phone: '+372.12345678',
|
||||
code: 'qwe', ident: '37605030299', email: 'admin1@v.ee' }],
|
||||
domain: { name: 'version.ee', status: nil },
|
||||
nameservers: [{ hostname: 'ns.test.ee', ipv4: nil, ipv6: nil }],
|
||||
owner_contact: { name: 'owner_contact', phone: '+372.12345678',
|
||||
code: 'asd', ident: '37605030299', email: 'owner1@v.ee' },
|
||||
tech_contacts: [{ name: 'tech_contact 1', phone: '+372.12345678',
|
||||
code: 'zxc', ident: '37605030299', email: 'tech1@v.ee' }]
|
||||
)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context 'when editing children' do
|
||||
it 'creates a version' do
|
||||
expect(DomainVersion.count).to eq(1)
|
||||
Contact.find_by(name: 'owner_contact').update_attributes!(name: 'edited owner_contact')
|
||||
expect(DomainVersion.count).to eq(2)
|
||||
end
|
||||
|
||||
it 'creates 3 versions' do
|
||||
expect(DomainVersion.count).to eq(1)
|
||||
Contact.find_by(name: 'owner_contact').update_attributes!(name: 'edited owner_contact')
|
||||
expect(DomainVersion.count).to eq(2)
|
||||
Contact.find_by(name: 'tech_contact 1').update_attributes!(name: 'edited tech_contact')
|
||||
expect(DomainVersion.count).to eq(3)
|
||||
Contact.find_by(name: 'admin_contact 1').update_attributes!(name: 'edited admin_contact')
|
||||
expect(DomainVersion.count).to eq(4)
|
||||
expect(DomainVersion.last.load_snapshot).to eq({
|
||||
admin_contacts: [{ name: 'edited admin_contact', phone: '+372.12345678',
|
||||
code: 'qwe', ident: '37605030299', email: 'admin1@v.ee' }],
|
||||
domain: { name: 'version.ee', status: nil },
|
||||
nameservers: [{ hostname: 'ns.test.ee', ipv4: nil, ipv6: nil }],
|
||||
owner_contact: { name: 'edited owner_contact', phone: '+372.12345678',
|
||||
code: 'asd', ident: '37605030299', email: 'owner1@v.ee' },
|
||||
tech_contacts: [{ name: 'edited tech_contact', phone: '+372.12345678',
|
||||
code: 'zxc', ident: '37605030299', email: 'tech1@v.ee' }]
|
||||
})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue