|
|
|
require 'spec_helper'
|
|
|
|
|
|
|
|
describe "New User Registrations" do
|
|
|
|
|
|
|
|
it 'should have a link to sign up on the homepage' do
|
|
|
|
visit root_path
|
|
|
|
page.should have_link 'Sign up'
|
|
|
|
click_link 'Sign up'
|
|
|
|
current_path.should == new_user_registration_path
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'registration page' do
|
|
|
|
before do
|
|
|
|
visit new_user_registration_path
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should have the additional user fields on the registration page' do
|
|
|
|
page.should have_field 'user_username'
|
|
|
|
page.should have_field 'user_first_name'
|
|
|
|
page.should have_field 'user_last_name'
|
|
|
|
page.should have_field 'user_email'
|
|
|
|
page.should have_field 'user_password'
|
|
|
|
page.should have_field 'user_password_confirmation'
|
|
|
|
page.should have_button 'Sign up'
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'required non-devise fields' do
|
|
|
|
before do
|
|
|
|
fill_in 'user_email', :with => 'FF@example.com'
|
|
|
|
fill_in 'user_password', :with => 'password'
|
|
|
|
fill_in 'user_password_confirmation', :with => 'password'
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should require username' do
|
|
|
|
fill_in 'user_first_name', :with => 'Frank'
|
|
|
|
fill_in 'user_last_name', :with => 'Footer'
|
|
|
|
click_button 'Sign up'
|
|
|
|
page.should have_content "Username can't be blank"
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should require first name' do
|
|
|
|
fill_in 'user_last_name', :with => 'Footer'
|
|
|
|
click_button 'Sign up'
|
|
|
|
page.should have_content "First name can't be blank"
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should require last name' do
|
|
|
|
fill_in 'user_first_name', :with => 'Frank'
|
|
|
|
click_button 'Sign up'
|
|
|
|
page.should have_content "Last name can't be blank"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should allow registering many users with empty emails' do
|
|
|
|
expect do
|
|
|
|
FactoryGirl.create :user, email: ''
|
|
|
|
FactoryGirl.create :user, email: nil
|
|
|
|
|
|
|
|
fill_in 'user_username', :with => 'test3'
|
|
|
|
fill_in 'user_first_name', :with => 'Frank3'
|
|
|
|
fill_in 'user_last_name', :with => 'Footer3'
|
|
|
|
fill_in 'user_password', :with => 'password3'
|
|
|
|
fill_in 'user_password_confirmation', :with => 'password3'
|
|
|
|
click_button 'Sign up'
|
|
|
|
end.to change { User.count }.by(3)
|
|
|
|
|
|
|
|
expect(User.where(email: nil).count).to eq(3)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|