Files
grecia/spec/models/verification/letter_spec.rb
Javi Martín db97f9d08c Add and apply rubocop rules for empty lines
We were very inconsistent regarding these rules.

Personally I prefer no empty lines around blocks, clases, etc... as
recommended by the Ruby style guide [1], and they're the default values
in rubocop, so those are the settings I'm applying.

The exception is the `private` access modifier, since we were leaving
empty lines around it most of the time. That's the default rubocop rule
as well. Personally I don't have a strong preference about this one.


[1] https://rubystyle.guide/#empty-lines-around-bodies
2019-10-24 17:11:47 +02:00

55 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