mirror of
https://github.com/internetee/registry.git
synced 2025-05-18 02:09:39 +02:00
Basic ident and phone validations
This commit is contained in:
parent
256f564327
commit
1645b3e96f
6 changed files with 45 additions and 3 deletions
3
Gemfile
3
Gemfile
|
@ -37,6 +37,9 @@ gem 'nokogiri', '~> 1.6.2.1'
|
|||
# For punycode
|
||||
gem 'simpleidn', '~> 0.0.5'
|
||||
|
||||
#for EE-id validation
|
||||
gem 'isikukood'
|
||||
|
||||
group :assets do
|
||||
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
|
||||
gem 'therubyracer', platforms: :ruby
|
||||
|
|
|
@ -62,6 +62,7 @@ GEM
|
|||
hike (1.2.3)
|
||||
hpricot (0.8.6)
|
||||
i18n (0.6.9)
|
||||
isikukood (0.1.2)
|
||||
jbuilder (2.1.1)
|
||||
activesupport (>= 3.0.0, < 5)
|
||||
multi_json (~> 1.2)
|
||||
|
@ -185,6 +186,7 @@ DEPENDENCIES
|
|||
fabrication (~> 2.11.3)
|
||||
faker (~> 1.3.0)
|
||||
haml-rails (~> 0.5.3)
|
||||
isikukood
|
||||
jbuilder (~> 2.0)
|
||||
jquery-rails
|
||||
nokogiri (~> 1.6.2.1)
|
||||
|
|
|
@ -1,7 +1,16 @@
|
|||
class Contact < ActiveRecord::Base
|
||||
#TODO Estonian id validation
|
||||
#TODO Foreign contact will get email with activation link/username/temp password
|
||||
#TODO Phone number validation, in first phase very minimam in order to support current registries
|
||||
has_many :addresses
|
||||
|
||||
validate :ident_must_be_valid
|
||||
validates :phone, format: { with: /\+\d{3}\.\d+/, message: "bad format" }
|
||||
|
||||
def ident_must_be_valid
|
||||
#TODO Ident can also be passport number or company registry code.
|
||||
#so have to make changes to validations (and doc/schema) accordingly
|
||||
return true unless ident.present?
|
||||
code = Isikukood.new(ident)
|
||||
errors.add(:ident, 'bad format') unless code.valid?
|
||||
end
|
||||
end
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
<contact:cc>EE</contact:cc>
|
||||
</contact:addr>
|
||||
</contact:postalInfo>
|
||||
<contact:voice x="1234">+1.7035555555</contact:voice>
|
||||
<contact:voice x="1234">+123.7035555555</contact:voice>
|
||||
<contact:fax>+1.7035555556</contact:fax>
|
||||
<contact:email>jdoe@example.com</contact:email>
|
||||
<contact:ident>12345678901</contact:ident>
|
||||
<contact:ident>37605030299</contact:ident>
|
||||
<contact:authInfo>
|
||||
<contact:pw>2fooBAR</contact:pw>
|
||||
</contact:authInfo>
|
||||
|
|
6
spec/fabricators/contact_fabricator.rb
Normal file
6
spec/fabricators/contact_fabricator.rb
Normal file
|
@ -0,0 +1,6 @@
|
|||
Fabricator(:contact) do
|
||||
name Faker::Name.name
|
||||
phone '+372.12345678'
|
||||
email Faker::Internet.email
|
||||
ident '37605030299'
|
||||
end
|
|
@ -2,4 +2,26 @@ require "rails_helper"
|
|||
|
||||
describe Contact do
|
||||
it { should have_many(:addresses) }
|
||||
|
||||
context 'with invalid attribute' do
|
||||
before(:each) { @contact = Fabricate(:contact) }
|
||||
|
||||
it 'phone should return false' do
|
||||
@contact.phone = "32341"
|
||||
expect(@contact.valid?).to be false
|
||||
end
|
||||
|
||||
it 'ident should return false' do
|
||||
@contact.ident = "123abc"
|
||||
expect(@contact.valid?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
context 'with valid attributes' do
|
||||
before(:each) { @contact = Fabricate(:contact) }
|
||||
|
||||
it 'should return true' do
|
||||
expect(@contact.valid?).to be true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue