Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'rails_helper'
- RSpec.describe User, type: :model do
- describe 'authenticate' do
- let(:user) { create :user }
- it { expect(nil).to eq(User.authenticate('test@example.net', 'password1234')) }
- it { expect(nil).to eq(User.authenticate('test@example.com', 'password12345')) }
- it { expect(user).to eq(User.authenticate('test@example.com', 'password1234')) }
- end
- describe '#create' do
- let(:user) { build :user }
- it { expect(user).to be_valid }
- it 'validates email is blank' do
- user.email = ''
- expect(user).to be_invalid
- end
- it 'validates password is blank' do
- user.password = ''
- expect(user).to be_invalid
- end
- it 'validates name is blank' do
- user.name = ''
- expect(user).to be_invalid
- end
- it 'validates names length' do
- user.name = '123456789012345678901'
- expect(user).to be_invalid
- end
- it 'validates email format' do
- user.email = 'a'
- expect(user).to be_invalid
- user.email = 'a@a'
- expect(user).to be_invalid
- user.email = 'a@a.'
- expect(user).to be_invalid
- user.email = 'a@a.com'
- expect(user).to be_valid
- end
- it 'validates input password' do
- user.password = '1234567'
- expect(user).to be_invalid
- user.password = '12345678'
- expect(user).to be_invalid
- user.password = 'abcdefg'
- expect(user).to be_invalid
- user.password = 'abcdefgh'
- expect(user).to be_invalid
- user.password = 'abcdefg1'
- expect(user).to be_valid
- end
- it 'save with password hash/salt' do
- created_user = User.create(
- subdomain: 'ore',
- email: 'ore@ore.com',
- password: 'password1234',
- name: 'ORE Taro'
- )
- expect(created_user.errors).to be_empty
- expect(created_user.password_salt).to match /[0-9a-f]{40}/
- expect(created_user.password_hash).to match /[0-9a-f]{40}/
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement