64 lines
1.5 KiB
Ruby
64 lines
1.5 KiB
Ruby
require 'rails_helper'
|
|
|
|
describe 'Verification::Letter' do
|
|
|
|
let(:user) { create(:user) }
|
|
|
|
describe "validations" do
|
|
|
|
let(:letter) { build(:verification_letter) }
|
|
|
|
it "should be valid" do
|
|
expect(letter).to be_valid
|
|
end
|
|
|
|
it "should not be valid without a user" do
|
|
letter.user = nil
|
|
expect(letter).to_not be_valid
|
|
end
|
|
|
|
end
|
|
|
|
describe "save" do
|
|
|
|
before(:each) do
|
|
letter = Verification::Letter.new(user: user)
|
|
letter.save
|
|
user.reload
|
|
end
|
|
|
|
it "should update letter_requested" do
|
|
expect(user.letter_requested_at).to be
|
|
end
|
|
|
|
end
|
|
|
|
describe "#verified?" do
|
|
|
|
let(:letter) { build(:verification_letter) }
|
|
|
|
it "letter not sent" do
|
|
letter.user.update(letter_sent_at: nil)
|
|
|
|
expect(letter.verified?).to eq(false)
|
|
expect(letter.errors[:verification_code].first).to eq("We have not sent you the letter with the code yet")
|
|
end
|
|
|
|
it "letter sent but incorrect code" do
|
|
letter.user.update(letter_sent_at: 1.day.ago, letter_verification_code: "123456")
|
|
letter.verification_code = nil
|
|
|
|
expect(letter.verified?).to eq(false)
|
|
expect(letter.errors[:verification_code].first).to eq("Incorrect confirmation code")
|
|
end
|
|
|
|
it "letter sent and correct code" do
|
|
letter.user.update(letter_sent_at: 1.day.ago, letter_verification_code: "123456")
|
|
letter.verification_code = "123456"
|
|
|
|
expect(letter.verified?).to eq(true)
|
|
expect(letter.errors).to be_empty
|
|
end
|
|
end
|
|
|
|
end |