docbrown/spec/models/email_authorization_spec.rb
Mac Siri 842e6880b8
Routine rubocop fix on /spec (#19217)
* Softrun rubocop

* Hardrun rubocop (-A)

* Change a rubocop rule

* Add missing cops

* Undo & redo rubocop -A
2023-03-21 09:55:26 -04:00

55 lines
1.7 KiB
Ruby

require "rails_helper"
RSpec.describe EmailAuthorization do
let(:email_authorization) { create(:email_authorization) }
describe "validations" do
describe "builtin validations" do
subject { email_authorization }
it { is_expected.to validate_inclusion_of(:type_of).in_array(EmailAuthorization::TYPES) }
it { is_expected.to validate_presence_of(:type_of) }
end
end
describe "#confirmation_token" do
it "is created automatically" do
expect(email_authorization.confirmation_token).to be_present
end
it "is not changed if already present" do
token = email_authorization.confirmation_token
email_authorization.save!
expect(email_authorization.reload.confirmation_token).to eq(token)
end
end
describe "#sent_at" do
it "is aliased to #created_at" do
expect(email_authorization.sent_at).to eq(email_authorization.created_at)
end
end
describe ".last_verification_date" do
let(:user) { create(:user) }
it "returns nil if there are no email authorizations" do
expect(described_class.last_verification_date(user)).to be_nil
end
it "does not return unverified email authorizations" do
create(:email_authorization, user: user, verified_at: nil)
expect(described_class.last_verification_date(user)).to be_nil
end
it "returns the last email authorization's date" do
ea1 = create(:email_authorization, user: user, created_at: 1.day.ago, verified_at: 1.day.ago)
create(:email_authorization, user: user, created_at: 1.month.ago, verified_at: 1.month.ago)
expect(described_class.last_verification_date(user).iso8601).to eq(ea1.verified_at.iso8601)
end
end
end