50 lines
1.5 KiB
Ruby
50 lines
1.5 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe 'users/new' do
|
|
let(:user) { mock_model(User).as_new_record.as_null_object }
|
|
|
|
before { assign :user, user }
|
|
|
|
it 'renders a form to sign up' do
|
|
render
|
|
expect(rendered)
|
|
.to have_selector "form[method=post][action='#{users_path}']"
|
|
expect(rendered).to have_selector 'input[type=submit]'
|
|
end
|
|
|
|
it 'renders a text field with a label for the mail address' do
|
|
render
|
|
expect(rendered).to have_selector "input[type=text][name='user[email]']"
|
|
expect(rendered).to have_selector 'label[for=user_email]', text: 'Email'
|
|
end
|
|
|
|
it 'renders a password field with a label for the password' do
|
|
render
|
|
expect(rendered)
|
|
.to have_selector "input[type=password][name='user[password]']"
|
|
expect(rendered)
|
|
.to have_selector 'label[for=user_password]', text: 'Password'
|
|
end
|
|
|
|
it 'renders a password field with a label for the password confirmation' do
|
|
render
|
|
expect(rendered)
|
|
.to have_selector "input[type=password][name='user[password_confirmation]']"
|
|
expect(rendered).to have_selector(
|
|
'label[for=user_password_confirmation]',
|
|
text: 'Password confirmation'
|
|
)
|
|
end
|
|
|
|
context 'when the user has some validation errors' do
|
|
it 'on the email address uniqueness' do
|
|
user = FactoryGirl.create(:user, email: 'unique@example.net')
|
|
new_user = FactoryGirl.build(:user, email: user.email)
|
|
new_user.save
|
|
assign :user, new_user
|
|
render
|
|
expect(rendered).to have_content 'Email has already been taken'
|
|
end
|
|
end
|
|
end
|