diff --git a/app/models/domain.rb b/app/models/domain.rb index aa37461eb..8afe86671 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -69,9 +69,9 @@ class Domain < ActiveRecord::Base oc = owner_contact.snapshot if owner_contact.is_a?(Contact) { owner_contact: oc, - tech_contacts: tech_contacts.map{ |tc| tc.snapshot }, - admin_contacts: admin_contacts.map{ |ac| ac.snapshot }, - nameservers: nameservers.map{ |ns| ns.snapshot }, + tech_contacts: tech_contacts.map(&:snapshot), + admin_contacts: admin_contacts.map(&:snapshot), + nameservers: nameservers.map(&:snapshot), domain: make_snapshot }.to_yaml end @@ -293,25 +293,24 @@ class Domain < ActiveRecord::Base private - #for archiving - #def version_owner + # for archiving + # def version_owner # return nil unless owner_contact # owner_contact.id - #end + # end - #def version_admin_contacts + # def version_admin_contacts # return nil unless admin_contacts # return admin_contacts.map { |ns| ns.id } - #end + # end - #def version_tech_contacts + # def version_tech_contacts # return nil unless tech_contacts # return tech_contacts.map { |ns| ns.id } - #end + # end - #def version_nameservers + # def version_nameservers # return nil unless nameservers # return nameservers.map { |ns| ns.id } - #end - + # end end diff --git a/spec/models/domain_spec.rb b/spec/models/domain_spec.rb index 1d5dc70c2..edef63e71 100644 --- a/spec/models/domain_spec.rb +++ b/spec/models/domain_spec.rb @@ -102,7 +102,12 @@ describe Domain do end context 'when saved' do - before(:each) { Fabricate(:domain_validation_setting_group); Fabricate(:domain) } + 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) diff --git a/spec/models/domain_version_spec.rb b/spec/models/domain_version_spec.rb index f2585e036..7c69c9f18 100644 --- a/spec/models/domain_version_spec.rb +++ b/spec/models/domain_version_spec.rb @@ -2,11 +2,11 @@ require 'rails_helper' describe DomainVersion do with_versioning do - before(:each) { Fabricate(:domain_validation_setting_group) } + before(:each) { Fabricate(:domain_validation_setting_group); Fabricate(:dnskeys_setting_group) } before(:each) do Fabricate(:domain, name: 'version.ee') do owner_contact { Fabricate(:contact, name: 'owner_contact', code: 'asd', email: 'owner1@v.ee') } - nameservers(count: 1) { Fabricate(:nameserver, hostname: 'ns.test.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 @@ -17,11 +17,14 @@ describe DomainVersion do 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"}] + 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 @@ -32,11 +35,12 @@ describe DomainVersion do 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 => [] + 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 @@ -47,11 +51,13 @@ describe DomainVersion do 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 => [] + 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 end @@ -72,11 +78,14 @@ describe DomainVersion do 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"}] + 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