mirror of
https://github.com/internetee/registry.git
synced 2025-07-21 10:16:01 +02:00
DomainContact versioning and tests for versioning
This commit is contained in:
parent
79bf0e54c3
commit
cb37ddf96d
3 changed files with 63 additions and 1 deletions
|
@ -3,6 +3,10 @@ class DomainContact < ActiveRecord::Base
|
||||||
belongs_to :contact
|
belongs_to :contact
|
||||||
belongs_to :domain
|
belongs_to :domain
|
||||||
|
|
||||||
|
after_create :domain_snapshot
|
||||||
|
after_destroy :domain_snapshot
|
||||||
|
# after_save :domain_snapshot
|
||||||
|
|
||||||
attr_accessor :value_typeahead
|
attr_accessor :value_typeahead
|
||||||
|
|
||||||
def epp_code_map
|
def epp_code_map
|
||||||
|
@ -33,4 +37,11 @@ class DomainContact < ActiveRecord::Base
|
||||||
def value_typeahead
|
def value_typeahead
|
||||||
@value_typeahead || contact.try(:name) || nil
|
@value_typeahead || contact.try(:name) || nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def domain_snapshot
|
||||||
|
# We don't create a version unless domain is valid, is that a good idea?
|
||||||
|
return true unless PaperTrail.enabled?
|
||||||
|
domain.touch_with_version if domain.valid?
|
||||||
|
true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -55,5 +55,9 @@
|
||||||
= ns[:hostname] + ","
|
= ns[:hostname] + ","
|
||||||
= ns[:ipv4] || ns[:ipv6]
|
= ns[:ipv4] || ns[:ipv6]
|
||||||
|
|
||||||
%td= l(version.created_at, format: :short)
|
%td
|
||||||
|
%p{ :style => 'font-size:x-small;' }
|
||||||
|
= l(version.created_at, format: :short)
|
||||||
|
= version.whodunnit
|
||||||
|
= version.event
|
||||||
|
|
||||||
|
|
|
@ -45,6 +45,53 @@ describe DomainVersion do
|
||||||
end
|
end
|
||||||
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')
|
||||||
|
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) }
|
||||||
|
before(:each) { Domain.last.nameservers << Fabricate(:nameserver) }
|
||||||
|
|
||||||
|
it 'contact creates a version' do
|
||||||
|
# FIXME For some reason nameservers disappeared mid-test, but randomly stopped happening
|
||||||
|
expect(DomainVersion.count).to eq(1)
|
||||||
|
DomainContact.last.destroy
|
||||||
|
expect(Domain.last.valid?).to be(true)
|
||||||
|
expect(DomainVersion.count).to eq(2)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'nameserver creates a version' do
|
||||||
|
Domain.last.nameservers.last.destroy
|
||||||
|
expect(DomainVersion.count).to eq(1)
|
||||||
|
expect(Domain.last.nameservers.count).to eq(1)
|
||||||
|
expect(DomainVersion.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 deleting children' do
|
context 'when deleting children' do
|
||||||
it 'creates a version' do
|
it 'creates a version' do
|
||||||
expect(DomainVersion.count).to eq(1)
|
expect(DomainVersion.count).to eq(1)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue