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.
require "spec_helper"
before do
request.env["devise.mapping"] = Devise.mappings[:user]
end
let(:valid_params) {
{
user: {
username: "jdoe",
email: "jdoe@example.com",
password: "password",
password_confirmation: "password"
describe '#check_registrations_open!' do
before do
it 'redirects #new to the login page' do
expect(flash[:error]).to eq(I18n.t('registrations.closed'))
expect(response).to redirect_to new_user_session_path
it 'redirects #create to the login page' do
post :create, valid_params
expect(flash[:error]).to eq(I18n.t('registrations.closed'))
expect(response).to 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}
end
it 'does redirect if there is an invalid invite token' do
get :new, :invite => {:token => 'fssdfsd'}
Jason Robinson
a validé
render_views
context "with valid parameters" do
allow(User).to receive(:build).and_return(user)
get :create, valid_params
get :create, valid_params
get :create, valid_params
expect(flash[:notice]).not_to be_blank
it "uses the invite code" do
code = InvitationCode.create(user: bob)
expect {
get :create, valid_params.merge(invite: {token: code.token})
}.to change { code.reload.count }.by(-1)
end
it "redirects to the home path" do
get :create, valid_params
expect(response).to be_redirect
expect(response.location).to match /^#{stream_url}\??$/
context "with invalid parameters" do
let(:invalid_params) { valid_params.deep_merge(user: {password_confirmation: "baddword"}) }
it "does not create a user" do
expect { get :create, invalid_params }.not_to change(User, :count)
end
it "does not create a person" do
expect { get :create, invalid_params }.not_to change(Person, :count)
end
get :create, invalid_params
it "sets the flash error" do
get :create, invalid_params
expect(flash[:error]).not_to be_blank
end
it "doesn't reduce number of available invites" do
code = InvitationCode.create(user: bob)
expect {
get :create, invalid_params.merge(invite: {token: code.token})
}.not_to change { code.reload.count }
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
Jason Robinson
a validé
it "keeps invalid params in form" do
get :create, invalid_params
Jason Robinson
a validé
expect(response.body).to match /jdoe@example.com/m
end
end