Owner contact validation

This commit is contained in:
Martin Lensment 2014-07-31 11:44:52 +03:00
parent 4396ec665c
commit 62b3ff6fc7
5 changed files with 45 additions and 34 deletions

View file

@ -22,6 +22,9 @@ class Domain < ActiveRecord::Base
validates :name, domain_name: true, uniqueness: { message: I18n.t('errors.messages.epp_domain_taken') } validates :name, domain_name: true, uniqueness: { message: I18n.t('errors.messages.epp_domain_taken') }
validates :name_puny, domain_name: true validates :name_puny, domain_name: true
validates :period, numericality: { only_integer: true, greater_than: 0, less_than: 100 } validates :period, numericality: { only_integer: true, greater_than: 0, less_than: 100 }
validates :owner_contact, presence: true
# validates :tech_contacts_count
# validates :admin_contacts_count
def name=(value) def name=(value)
value.strip! value.strip!

View file

@ -39,6 +39,9 @@ en:
attributes: attributes:
name: name:
blank: 'Required parameter missing - name' blank: 'Required parameter missing - name'
owner_contact:
blank: 'Required parameter missing - owner contact'
errors: errors:
messages: messages:

View file

@ -6,44 +6,47 @@ describe 'EPP Domain', epp: true do
context 'with valid user' do context 'with valid user' do
before(:each) { Fabricate(:epp_user) } before(:each) { Fabricate(:epp_user) }
# incomplete context 'with citizen as an owner' do
it 'creates a domain' do before(:each) { Fabricate(:contact, code: 'jd1234') }
response = epp_request('domains/create.xml')
expect(response[:result_code]).to eq('1000')
expect(response[:msg]).to eq('Command completed successfully')
expect(response[:clTRID]).to eq('ABC-12345')
expect(Domain.first.registrar.name).to eq('Zone Media OÜ')
end
it 'does not create duplicate domain' do it 'creates a domain' do
epp_request('domains/create.xml') response = epp_request('domains/create.xml')
response = epp_request('domains/create.xml') expect(response[:result_code]).to eq('1000')
expect(response[:result_code]).to eq('2302') expect(response[:msg]).to eq('Command completed successfully')
expect(response[:msg]).to eq('Domain name already exists') expect(response[:clTRID]).to eq('ABC-12345')
expect(response[:clTRID]).to eq('ABC-12345') expect(Domain.first.registrar.name).to eq('Zone Media OÜ')
end end
it 'does not create reserved domain' do it 'does not create duplicate domain' do
Fabricate(:reserved_domain) epp_request('domains/create.xml')
response = epp_request('domains/create_reserved.xml') response = epp_request('domains/create.xml')
expect(response[:result_code]).to eq('2302') expect(response[:result_code]).to eq('2302')
expect(response[:msg]).to eq('Domain name is reserved or restricted') expect(response[:msg]).to eq('Domain name already exists')
expect(response[:clTRID]).to eq('ABC-12345') expect(response[:clTRID]).to eq('ABC-12345')
end end
it 'creates a domain with contacts' do it 'does not create reserved domain' do
Fabricate(:contact, code: 'jd1234') Fabricate(:reserved_domain)
Fabricate(:contact, code: 'sh8013') response = epp_request('domains/create_reserved.xml')
Fabricate(:contact, code: 'sh801333') expect(response[:result_code]).to eq('2302')
expect(response[:msg]).to eq('Domain name is reserved or restricted')
expect(response[:clTRID]).to eq('ABC-12345')
end
response = epp_request('domains/create.xml') it 'creates a domain with contacts' do
expect(response[:result_code]).to eq('1000') Fabricate(:contact, code: 'jd1234')
expect(response[:msg]).to eq('Command completed successfully') Fabricate(:contact, code: 'sh8013')
expect(response[:clTRID]).to eq('ABC-12345') Fabricate(:contact, code: 'sh801333')
expect(Domain.first.tech_contacts.count).to eq 2 response = epp_request('domains/create.xml')
expect(Domain.first.admin_contacts.count).to eq 1 expect(response[:result_code]).to eq('1000')
expect(Domain.first.owner_contact).to_not be nil expect(response[:msg]).to eq('Command completed successfully')
expect(response[:clTRID]).to eq('ABC-12345')
expect(Domain.first.tech_contacts.count).to eq 2
expect(Domain.first.admin_contacts.count).to eq 1
expect(Domain.first.owner_contact).to_not be nil
end
end end
it 'checks a domain' do it 'checks a domain' do

View file

@ -1,4 +1,5 @@
Fabricator(:domain) do Fabricator(:domain) do
name { "#{Faker::Internet.domain_word}.ee" } name { "#{Faker::Internet.domain_word}.ee" }
period 1 period 1
owner_contact(fabricator: :contact)
end end

View file

@ -40,7 +40,8 @@ describe Domain do
expect(d.errors.messages).to match_array({ expect(d.errors.messages).to match_array({
name: ['Required parameter missing - name'], name: ['Required parameter missing - name'],
period: ['is not a number'] period: ['is not a number'],
owner_contact: ['Required parameter missing - owner contact']
}) })
end end