Sha256: 2940cef2f9d823c3458ff9c011075b3eb6edcb272de21bcec23093d1f05db6a1

Contents?: true

Size: 1.05 KB

Versions: 3

Compression:

Stored size: 1.05 KB

Contents

require 'rails_helper'

RSpec.describe Peoplefinder::Token, type: :model do
  it 'generates a token' do
    token = create(:token)
    expect(token.value).to match(/\A[a-z0-9\-]{36}\z/)
  end

  it 'preserves the same token after persisting' do
    token = create(:token)
    value = token.value
    token.save!
    token.reload
    expect(token.value).to eql(value)
  end

  it 'will be valid with valid email address' do
    token = build(:token)
    expect(token).to be_valid
  end

  it 'will be invalid with invalid email address' do
    token = build(:token, user_email: 'bob')
    expect(token).not_to be_valid
  end

  it 'will be invalid with email address from wrong domain' do
    token = build(:token, user_email: 'bob@example.com')
    expect(token).not_to be_valid
  end

  describe '#for_person' do
    let(:person) { create(:person, email: 'text.user@digital.justice.gov.uk') }
    let(:token) { described_class.for_person(person) }

    it 'creates a token for that person\'s email' do
      expect(token.user_email).to eql(person.email)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
peoplefinder-0.1.1 spec/models/peoplefinder/tokens_spec.rb
peoplefinder-0.1.0 spec/models/peoplefinder/tokens_spec.rb
peoplefinder-0.0.2 spec/models/peoplefinder/tokens_spec.rb