scube-server/spec/models/user_spec.rb
Thibault Jouan 4f66db2682 Refactor code related to authentication:
* User model
* SessionsController
2011-08-29 20:23:20 +00:00

55 lines
1.1 KiB
Ruby

require 'spec_helper'
describe User do
subject { user }
let(:user) { Factory.build(:user) }
context 'with valid attributes' do
it { should be_valid }
end
context 'when email empty' do
before do
user.email = ''
end
it { should_not be_valid }
end
context 'when password_confirmation does not match password' do
before do
user.password_confirmation = user.password + 'INVALID'
end
it { should_not be_valid }
end
context 'when password_hash empty' do
before do
user.password_hash = ''
end
it { should_not be_valid }
end
describe '#password=' do
it 'stores a bcrypt hash of the password in password_hash' do
BCrypt::Password.new(user.password_hash).should == user.password
end
end
describe '#authenticate?' do
context 'with a valid password' do
it 'returns true' do
user.authenticate?(user.password).should be_true
end
end
context 'with an invalid password' do
it 'returns false' do
user.authenticate?(user.password + '_INVALID').should be_false
end
end
end
end