Allows manually verifying users to level 2 without specifying a phone
This commit is contained in:
@@ -3,9 +3,9 @@ module Verification
|
|||||||
|
|
||||||
included do
|
included do
|
||||||
scope :level_three_verified, -> { where.not(verified_at: nil) }
|
scope :level_three_verified, -> { where.not(verified_at: nil) }
|
||||||
scope :level_two_verified, -> { where("users.confirmed_phone IS NOT NULL AND users.residence_verified_at IS NOT NULL") }
|
scope :level_two_verified, -> { where("users.level_two_verified_at IS NOT NULL OR (users.confirmed_phone IS NOT NULL AND users.residence_verified_at IS NOT NULL)") }
|
||||||
scope :level_two_or_three_verified, -> { where("users.verified_at IS NOT NULL OR (users.confirmed_phone IS NOT NULL AND users.residence_verified_at IS NOT NULL)") }
|
scope :level_two_or_three_verified, -> { where("users.verified_at IS NOT NULL OR users.level_two_verified_at IS NOT NULL OR (users.confirmed_phone IS NOT NULL AND users.residence_verified_at IS NOT NULL)") }
|
||||||
scope :unverified, -> { where("users.verified_at IS NULL AND (users.residence_verified_at IS NULL OR users.confirmed_phone IS NULL)") }
|
scope :unverified, -> { where("users.verified_at IS NULL AND (users.level_two_verified_at IS NULL AND (users.residence_verified_at IS NULL OR users.confirmed_phone IS NULL))") }
|
||||||
scope :incomplete_verification, -> { where("(users.residence_verified_at IS NULL AND users.failed_census_calls_count > ?) OR (users.residence_verified_at IS NOT NULL AND (users.unconfirmed_phone IS NULL OR users.confirmed_phone IS NULL))", 0) }
|
scope :incomplete_verification, -> { where("(users.residence_verified_at IS NULL AND users.failed_census_calls_count > ?) OR (users.residence_verified_at IS NOT NULL AND (users.unconfirmed_phone IS NULL OR users.confirmed_phone IS NULL))", 0) }
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ module Verification
|
|||||||
end
|
end
|
||||||
|
|
||||||
def level_two_verified?
|
def level_two_verified?
|
||||||
residence_verified? && sms_verified?
|
level_two_verified_at.present? || (residence_verified? && sms_verified?)
|
||||||
end
|
end
|
||||||
|
|
||||||
def level_three_verified?
|
def level_three_verified?
|
||||||
|
|||||||
@@ -19,10 +19,12 @@ shared_examples_for "verifiable" do
|
|||||||
user1 = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.now)
|
user1 = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.now)
|
||||||
user2 = create(:user, confirmed_phone: "123456789", residence_verified_at: nil)
|
user2 = create(:user, confirmed_phone: "123456789", residence_verified_at: nil)
|
||||||
user3 = create(:user, confirmed_phone: nil, residence_verified_at: Time.now)
|
user3 = create(:user, confirmed_phone: nil, residence_verified_at: Time.now)
|
||||||
|
user4 = create(:user, level_two_verified_at: Time.now)
|
||||||
|
|
||||||
expect(model.level_two_verified).to include(user1)
|
expect(model.level_two_verified).to include(user1)
|
||||||
expect(model.level_two_verified).to_not include(user2)
|
expect(model.level_two_verified).to_not include(user2)
|
||||||
expect(model.level_two_verified).to_not include(user3)
|
expect(model.level_two_verified).to_not include(user3)
|
||||||
|
expect(model.level_two_verified).to include(user4)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -32,12 +34,13 @@ shared_examples_for "verifiable" do
|
|||||||
user2 = create(:user, verified_at: Time.now)
|
user2 = create(:user, verified_at: Time.now)
|
||||||
user3 = create(:user, confirmed_phone: "123456789", residence_verified_at: nil)
|
user3 = create(:user, confirmed_phone: "123456789", residence_verified_at: nil)
|
||||||
user4 = create(:user, confirmed_phone: nil, residence_verified_at: Time.now)
|
user4 = create(:user, confirmed_phone: nil, residence_verified_at: Time.now)
|
||||||
|
user5 = create(:user, level_two_verified_at: Time.now)
|
||||||
|
|
||||||
expect(model.level_two_or_three_verified).to include(user1)
|
expect(model.level_two_or_three_verified).to include(user1)
|
||||||
expect(model.level_two_or_three_verified).to include(user2)
|
expect(model.level_two_or_three_verified).to include(user2)
|
||||||
expect(model.level_two_or_three_verified).to_not include(user3)
|
expect(model.level_two_or_three_verified).to_not include(user3)
|
||||||
expect(model.level_two_or_three_verified).to_not include(user4)
|
expect(model.level_two_or_three_verified).to_not include(user4)
|
||||||
|
expect(model.level_two_or_three_verified).to include(user5)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -47,11 +50,13 @@ shared_examples_for "verifiable" do
|
|||||||
user2 = create(:user, verified_at: nil, residence_verified_at: nil, confirmed_phone: "123456789")
|
user2 = create(:user, verified_at: nil, residence_verified_at: nil, confirmed_phone: "123456789")
|
||||||
user3 = create(:user, verified_at: nil, residence_verified_at: Time.now, confirmed_phone: nil)
|
user3 = create(:user, verified_at: nil, residence_verified_at: Time.now, confirmed_phone: nil)
|
||||||
user4 = create(:user, verified_at: Time.now, residence_verified_at: Time.now, confirmed_phone: "123456789")
|
user4 = create(:user, verified_at: Time.now, residence_verified_at: Time.now, confirmed_phone: "123456789")
|
||||||
|
user5 = create(:user, level_two_verified_at: Time.now)
|
||||||
|
|
||||||
expect(model.unverified).to include(user1)
|
expect(model.unverified).to include(user1)
|
||||||
expect(model.unverified).to include(user2)
|
expect(model.unverified).to include(user2)
|
||||||
expect(model.unverified).to include(user3)
|
expect(model.unverified).to include(user3)
|
||||||
expect(model.unverified).to_not include(user4)
|
expect(model.unverified).to_not include(user4)
|
||||||
|
expect(model.unverified).to_not include(user5)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -90,7 +95,10 @@ shared_examples_for "verifiable" do
|
|||||||
expect(user.sms_verified?).to eq(false)
|
expect(user.sms_verified?).to eq(false)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "level_two_verified? is true only if residence_verified_at and confirmed_phone" do
|
it "level_two_verified? is true if manually set, or if residence_verified_at and confirmed_phone" do
|
||||||
|
user = create(:user, level_two_verified_at: Time.now)
|
||||||
|
expect(user.level_two_verified?).to eq(true)
|
||||||
|
|
||||||
user = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.now)
|
user = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.now)
|
||||||
expect(user.level_two_verified?).to eq(true)
|
expect(user.level_two_verified?).to eq(true)
|
||||||
|
|
||||||
@@ -153,4 +161,4 @@ shared_examples_for "verifiable" do
|
|||||||
expect(user.verification_letter_sent?).to eq(false)
|
expect(user.verification_letter_sent?).to eq(false)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user