From cf4f9945e8a3082b8fb25c5cf7db700bdc0bb119 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Tue, 27 Oct 2015 19:15:01 +0100 Subject: [PATCH] checks letter verification code as integers --- app/models/verification/letter.rb | 2 +- spec/features/verification/letter_spec.rb | 17 +++++++++++++++++ spec/models/letter_spec.rb | 8 ++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/models/verification/letter.rb b/app/models/verification/letter.rb index d99583695..0beb7c8d8 100644 --- a/app/models/verification/letter.rb +++ b/app/models/verification/letter.rb @@ -28,7 +28,7 @@ class Verification::Letter def validate_correct_code return if errors.include?(:verification_code) - if user.try(:letter_verification_code) != verification_code + if user.try(:letter_verification_code).to_i != verification_code.to_i errors.add(:verification_code, I18n.t('verification.letter.errors.incorrect_code')) end end diff --git a/spec/features/verification/letter_spec.rb b/spec/features/verification/letter_spec.rb index 9ceb97335..bd98dd6cc 100644 --- a/spec/features/verification/letter_spec.rb +++ b/spec/features/verification/letter_spec.rb @@ -68,6 +68,23 @@ feature 'Verify Letter' do expect(current_path).to eq(account_path) end + scenario "Valid verification of user failing to add trailing zeros" do + user = create(:user, residence_verified_at: Time.now, + confirmed_phone: "611111111", + letter_verification_code: "012345") + + login_as(user) + visit edit_letter_path + + fill_in "verification_letter_email", with: user.email + fill_in "verification_letter_password", with: user.password + fill_in "verification_letter_verification_code", with: "12345" + click_button "Verify my account" + + expect(page).to have_content "Your account has been verified" + expect(current_path).to eq(account_path) + end + scenario "Valid verification user not logged in" do user = create(:user, residence_verified_at: Time.now, confirmed_phone: "611111111", diff --git a/spec/models/letter_spec.rb b/spec/models/letter_spec.rb index 68d6afe5b..48bf05309 100644 --- a/spec/models/letter_spec.rb +++ b/spec/models/letter_spec.rb @@ -48,6 +48,14 @@ describe 'Verification::Letter' do expect(letter.valid?).to eq(true) expect(letter.errors).to be_empty end + + it "ignores trailing zeros" do + letter.user.update(letter_verification_code: "003456") + letter.verification_code = "3456" + + expect(letter.valid?).to eq(true) + expect(letter.errors).to be_empty + end end end