VRFS-1576 added validation and tests
This commit is contained in:
parent
245727806d
commit
62dbeaa818
|
|
@ -4,16 +4,18 @@ class JamRuby::AffiliatePartner < ActiveRecord::Base
|
|||
|
||||
attr_accessible :partner_name, :partner_code, :partner_user_id
|
||||
|
||||
PARTNER_CODE_REGEX = /^[#{Regexp.escape('abcdefghijklmnopqrstuvwxyz0123456789-._+,')}]+{2,128}$/i
|
||||
|
||||
validates :user_email, format: {with: JamRuby::User::VALID_EMAIL_REGEX}, :if => :user_email
|
||||
validates :partner_name, presence: true
|
||||
validates :partner_code, presence: true
|
||||
validates :partner_code, presence: true, format: { with: PARTNER_CODE_REGEX }
|
||||
validates :partner_user, presence: true
|
||||
|
||||
def self.create_with_params(params={})
|
||||
oo = self.new
|
||||
oo.partner_name = params[:partner_name]
|
||||
oo.partner_code = params[:partner_code]
|
||||
oo.partner_user = User.where(:email => params[:user_email]).limit(1).first
|
||||
oo.partner_name = params[:partner_name].try(:strip)
|
||||
oo.partner_code = params[:partner_code].try(:strip)
|
||||
oo.partner_user = User.where(:email => params[:user_email].try(:strip)).limit(1).first
|
||||
oo.partner_user_id = oo.partner_user.try(:id)
|
||||
oo.save!
|
||||
oo
|
||||
|
|
|
|||
|
|
@ -14,6 +14,29 @@ describe AffiliatePartner do
|
|||
expect(partner.partner_user).to eq(user)
|
||||
user.reload
|
||||
expect(user.affiliate_partner).to eq(partner)
|
||||
|
||||
expect{AffiliatePartner.create_with_params({:partner_name => Faker::Company.name,
|
||||
:partner_code => 'a',
|
||||
:user_email => user.email})}
|
||||
.to raise_error(ActiveRecord::RecordInvalid)
|
||||
expect{AffiliatePartner.create_with_params({:partner_name => Faker::Company.name,
|
||||
:partner_code => 'foo bar',
|
||||
:user_email => user.email})}
|
||||
.to raise_error(ActiveRecord::RecordInvalid)
|
||||
expect{AffiliatePartner.create_with_params({:partner_name => '',
|
||||
:partner_code => Faker::Lorem.word,
|
||||
:user_email => user.email})}
|
||||
.to raise_error(ActiveRecord::RecordInvalid)
|
||||
expect{AffiliatePartner.create_with_params({:partner_name => Faker::Company.name,
|
||||
:partner_code => Faker::Lorem.word,
|
||||
:user_email => Faker::Internet.email})}
|
||||
.to raise_error(ActiveRecord::RecordInvalid)
|
||||
|
||||
code = Faker::Lorem.word
|
||||
oo = AffiliatePartner.create_with_params({:partner_name => Faker::Company.name,
|
||||
:partner_code => " #{code} ",
|
||||
:user_email => user.email})
|
||||
expect(oo.partner_code).to eq(code)
|
||||
end
|
||||
|
||||
it 'has user referrals' do
|
||||
|
|
|
|||
Loading…
Reference in New Issue