Files
nairobi/spec/models/verification/letter_spec.rb
Javi Martín 431074c99f Add save! method to ActiveModel models
This way we make it clear we expect records to be valid when we save
them, just like we do with ActiveRecord models.
2019-10-23 14:32:42 +02:00

62 lines
1.3 KiB
Ruby

require "rails_helper"
describe Verification::Letter do
let(:user) { create(:user) }
describe "validations" do
let(:letter) { build(:verification_letter) }
it "is valid" do
expect(letter).to be_valid
end
it "is not valid without a user" do
letter.user = nil
expect(letter).not_to be_valid
end
end
describe "save" do
it "updates letter_requested" do
letter = build(:verification_letter)
letter.save!
expect(letter.user.letter_requested_at).to be
end
end
describe "#verify" do
let(:letter) { build(:verification_letter, verify: true) }
it "incorrect code" do
letter.user.update(letter_verification_code: "123456")
letter.verification_code = "5555"
expect(letter.valid?).to eq(false)
expect(letter.errors[:verification_code].first).to eq("Verification code incorrect")
end
it "correct code" do
letter.user.update(letter_verification_code: "123456")
letter.verification_code = "123456"
expect(letter.valid?).to eq(true)
expect(letter.errors).to be_empty
end
it "ignores trailing zeros" do
letter.user.update(letter_verification_code: "003456")
letter.verification_code = "3456"
expect(letter.valid?).to eq(true)
expect(letter.errors).to be_empty
end
end
end