60 lines
1.6 KiB
Ruby
60 lines
1.6 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe 'users/new' do
|
|
let(:user) do
|
|
mock_model(User).as_new_record.as_null_object
|
|
end
|
|
|
|
before do
|
|
assign :user, user
|
|
end
|
|
|
|
it 'renders a form to sign up' do
|
|
render
|
|
rendered.should have_selector("form[method=post][action='#{users_path}']")
|
|
rendered.should have_selector('input[type=submit]')
|
|
end
|
|
|
|
it 'renders a text field with a label for the mail address' do
|
|
render
|
|
rendered.should have_selector(
|
|
"input[type=text][name='user[email]']"
|
|
)
|
|
rendered.should have_selector(
|
|
'label[for=user_email]', :text => 'Email'
|
|
)
|
|
end
|
|
|
|
it 'renders a password field with a label for the password' do
|
|
render
|
|
rendered.should have_selector(
|
|
"input[type=password][name='user[password]']"
|
|
)
|
|
rendered.should have_selector(
|
|
'label[for=user_password]', :text => 'Password'
|
|
)
|
|
end
|
|
|
|
it 'renders a password field with a label for the password confirmation' do
|
|
render
|
|
rendered.should have_selector(
|
|
"input[type=password][name='user[password_confirmation]']"
|
|
)
|
|
rendered.should 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
|
|
rendered.should have_content 'Email has already been taken'
|
|
end
|
|
end
|
|
end
|