Files
grecia/spec/models/letter_spec.rb
2015-09-26 13:45:37 +02:00

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