Newer
Older
# Copyright (c) 2010-2011, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3 or later. See
# the COPYRIGHT file.
describe RegistrationsController do
include Devise::TestHelpers
before do
request.env["devise.mapping"] = Devise.mappings[:user]
@valid_params = {:user => {
:username => "jdoe",
:email => "jdoe@example.com",
:password => "password",
:password_confirmation => "password"
}
}
Webfinger.stub_chain(:new, :fetch).and_return(FactoryGirl.create(:person))
describe '#check_registrations_open!' do
before do
it 'redirects #new to the login page' do
get :new
flash[:error].should == I18n.t('registrations.closed')
response.should redirect_to new_user_session_path
it 'redirects #create to the login page' do
post :create, @valid_params
flash[:error].should == I18n.t('registrations.closed')
response.should redirect_to new_user_session_path
it 'does not redirect if there is a valid invite token' do
i = InvitationCode.create(:user => bob)
get :new, :invite => {:token => i.token}
response.should_not be_redirect
end
it 'does redirect if there is an invalid invite token' do
get :new, :invite => {:token => 'fssdfsd'}
response.should be_redirect
end
Jason Robinson
a validé
render_views
context "with valid parameters" do
lambda {
get :create, @valid_params
}.should change(User, :count).by(1)
it "assigns @user" do
get :create, @valid_params
it "sets the flash" do
get :create, @valid_params
flash[:notice].should_not be_blank
it "redirects to the home path" do
response.location.should match /^#{stream_url}\??$/
context "with invalid parameters" do
before do
@invalid_params = @valid_params
@invalid_params[:user][:password_confirmation] = "baddword"
end
it "does not create a user" do
lambda { get :create, @invalid_params }.should_not change(User, :count)
end
it "does not create a person" do
lambda { get :create, @invalid_params }.should_not change(Person, :count)
end
assigns(:user).should_not be_nil
end
it "sets the flash error" do
get :create, @invalid_params
flash[:error].should_not be_blank
end
Jason Robinson
a validé
it "renders new" do
get :create, @invalid_params
Jason Robinson
a validé
expect(response).to render_template("registrations/new")
end
it "keeps invalid params in form" do
get :create, @invalid_params
expect(response.body).to match /jdoe@example.com/m
end
end