From 8bf71e818b1daf690e9f296dde88b57edc359ba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Fri, 11 Sep 2015 14:39:43 +0200 Subject: [PATCH] adds verification status methods to user --- lib/verification.rb | 12 ++++++++++++ spec/models/user_spec.rb | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/lib/verification.rb b/lib/verification.rb index 1e2f7be81..67b0f4422 100644 --- a/lib/verification.rb +++ b/lib/verification.rb @@ -1,5 +1,17 @@ module Verification + def verification_email_sent? + email_verification_token.present? + end + + def verification_sms_sent? + unconfirmed_phone.present? && sms_confirmation_code.present? + end + + def verification_letter_sent? + letter_requested_at.present? && letter_verification_code.present? + end + def residence_verified? residence_verified_at.present? end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 801702cae..e8e710dd0 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -304,6 +304,42 @@ describe User do user = create(:user, verified_at: Time.now, confirmed_phone: "123456789", residence_verified_at: Time.now) expect(user.unverified?).to eq(false) end + + it "verification_email_sent? is true only if user has email_verification_token" do + user = create(:user, email_verification_token: "xxxxxxx") + expect(user.verification_email_sent?).to eq(true) + + user = create(:user, email_verification_token: nil) + expect(user.verification_email_sent?).to eq(false) + end + + it "verification_sms_sent? is true only if user has unconfirmed_phone and sms_confirmation_code" do + user = create(:user, unconfirmed_phone: "666666666", sms_confirmation_code: "666") + expect(user.verification_sms_sent?).to eq(true) + + user = create(:user, unconfirmed_phone: nil, sms_confirmation_code: "666") + expect(user.verification_sms_sent?).to eq(false) + + user = create(:user, unconfirmed_phone: "666666666", sms_confirmation_code: nil) + expect(user.verification_sms_sent?).to eq(false) + + user = create(:user, unconfirmed_phone: nil, sms_confirmation_code: nil) + expect(user.verification_sms_sent?).to eq(false) + end + + it "verification_letter_sent? is true only if user has letter_requested_at and letter_verification_code" do + user = create(:user, letter_requested_at: Time.now, letter_verification_code: "666") + expect(user.verification_letter_sent?).to eq(true) + + user = create(:user, letter_requested_at: nil, letter_verification_code: "666") + expect(user.verification_letter_sent?).to eq(false) + + user = create(:user, letter_requested_at: Time.now, letter_verification_code: nil) + expect(user.verification_letter_sent?).to eq(false) + + user = create(:user, letter_requested_at: nil, letter_verification_code: nil) + expect(user.verification_letter_sent?).to eq(false) + end end describe "cache" do