Keep a blank line before and after private Keep a blank line before and after protected Remove extra empty line at class body end Remove extra blank line Add final newline Use 2 (not 3) spaces for indentation Use 2 (not 4) spaces for indentation Remove space before comma Add space after comma Remove trailing whitespaces Remove unnecessary spacing Use snake_case for variable names Do not use then for multi-line if Remove unused block argument - i Use the new Ruby 1.9 hash syntax Remove unused assignment to variable Indent when as deep as case Align attributes Align end with def
163 lines
7.0 KiB
Ruby
163 lines
7.0 KiB
Ruby
shared_examples_for "verifiable" do
|
|
let(:model) { described_class }
|
|
|
|
describe "#scopes" do
|
|
describe "#level_three_verified" do
|
|
it "returns level three verified users" do
|
|
user1 = create(:user, verified_at: Time.now)
|
|
user2 = create(:user, verified_at: nil)
|
|
|
|
expect(model.level_three_verified).to include(user1)
|
|
expect(model.level_three_verified).to_not include(user2)
|
|
end
|
|
end
|
|
|
|
describe "#level_two_verified" do
|
|
it "returns level two verified users" do
|
|
user1 = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.now)
|
|
user2 = create(:user, confirmed_phone: "123456789", residence_verified_at: nil)
|
|
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_not include(user2)
|
|
expect(model.level_two_verified).to_not include(user3)
|
|
expect(model.level_two_verified).to include(user4)
|
|
end
|
|
end
|
|
|
|
describe "#level_two_or_three_verified" do
|
|
it "returns level two or three verified users" do
|
|
user1 = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.now)
|
|
user2 = create(:user, verified_at: Time.now)
|
|
user3 = create(:user, confirmed_phone: "123456789", residence_verified_at: nil)
|
|
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(user2)
|
|
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 include(user5)
|
|
end
|
|
end
|
|
|
|
describe "#unverified" do
|
|
it "returns unverified users" do
|
|
user1 = create(:user, verified_at: nil, confirmed_phone: nil)
|
|
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)
|
|
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(user2)
|
|
expect(model.unverified).to include(user3)
|
|
expect(model.unverified).to_not include(user4)
|
|
expect(model.unverified).to_not include(user5)
|
|
end
|
|
end
|
|
|
|
describe "#incomplete_verification" do
|
|
it "returns users with incomplete verifications" do
|
|
user1 = create(:user, verified_at: nil, confirmed_phone: nil)
|
|
create(:failed_census_call, user: user1)
|
|
|
|
user2 = create(:user, verified_at: nil, residence_verified_at: Time.now, unconfirmed_phone: nil)
|
|
user3 = create(:user, verified_at: nil, confirmed_phone: nil)
|
|
user4 = create(:user, verified_at: Time.now, residence_verified_at: Time.now, unconfirmed_phone: "123456789", confirmed_phone: "123456789")
|
|
|
|
|
|
expect(model.incomplete_verification).to include(user1)
|
|
expect(model.incomplete_verification).to include(user2)
|
|
expect(model.incomplete_verification).to_not include(user3)
|
|
expect(model.incomplete_verification).to_not include(user4)
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "#methods" 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 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)
|
|
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
|
|
|
|
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
|
|
|
|
end |