diff --git a/lib/verification.rb b/lib/verification.rb index 2e784d65c..1e2f7be81 100644 --- a/lib/verification.rb +++ b/lib/verification.rb @@ -16,5 +16,9 @@ module Verification verified_at.present? end + def unverified? + !level_two_verified? && !level_three_verified? + end + end \ No newline at end of file diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index d00ed71ca..87d0994bb 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -254,4 +254,49 @@ describe User do end end + describe "verification levels" do + it "residence_verified? is true only if residence_verified_at" do + user = create(:user, residence_verified_at: Time.now) + expect(user.residence_verified?).to eq(true) + + user = create(:user, residence_verified_at: nil) + expect(user.residence_verified?).to eq(false) + end + + it "sms_verified? is true only if confirmed_phone" do + user = create(:user, confirmed_phone: "123456789") + expect(user.sms_verified?).to eq(true) + + user = create(:user, confirmed_phone: nil) + expect(user.sms_verified?).to eq(false) + end + + it "level_two_verified? is true only if residence_verified_at and confirmed_phone" do + user = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.now) + expect(user.level_two_verified?).to eq(true) + + user = create(:user, confirmed_phone: nil, residence_verified_at: Time.now) + expect(user.level_two_verified?).to eq(false) + + user = create(:user, confirmed_phone: "123456789", residence_verified_at: nil) + expect(user.level_two_verified?).to eq(false) + end + + it "level_three_verified? is true only if verified_at" do + user = create(:user, verified_at: Time.now) + expect(user.level_three_verified?).to eq(true) + + user = create(:user, verified_at: nil) + expect(user.level_three_verified?).to eq(false) + end + + it "unverified? is true only if not level_three_verified and not level_two_verified" do + user = create(:user, verified_at: nil, confirmed_phone: nil) + expect(user.unverified?).to eq(true) + + user = create(:user, verified_at: Time.now, confirmed_phone: "123456789", residence_verified_at: Time.now) + expect(user.unverified?).to eq(false) + end + end + end