replaces length 9 validation by format validation: only numbers, spaces and plus sign allowed
This commit is contained in:
@@ -4,7 +4,7 @@ class Verification::Sms
|
||||
attr_accessor :user, :phone, :confirmation_code
|
||||
|
||||
validates_presence_of :phone
|
||||
validates :phone, length: { is: 9 }
|
||||
validates :phone, format: { with: /\A[\d \+]+\z/ }
|
||||
validate :uniqness_phone
|
||||
|
||||
def uniqness_phone
|
||||
|
||||
@@ -7,9 +7,16 @@ describe Verification::Sms do
|
||||
end
|
||||
|
||||
it "should validate uniqness of phone" do
|
||||
user = create(:user, confirmed_phone: "699999999")
|
||||
create(:user, confirmed_phone: "699999999")
|
||||
sms = Verification::Sms.new(phone: "699999999")
|
||||
expect(sms).to_not be_valid
|
||||
end
|
||||
|
||||
end
|
||||
it "only allows spaces, numbers and the + sign" do
|
||||
expect(build(:verification_sms, phone: "0034 666666666")).to be_valid
|
||||
expect(build(:verification_sms, phone: "+34 666666666")).to be_valid
|
||||
expect(build(:verification_sms, phone: "hello there")).to_not be_valid
|
||||
expect(build(:verification_sms, phone: "555; DROP TABLE USERS")).to_not be_valid
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user