make user_controller tests not env dependent

This commit is contained in:
Joshua Arts 2018-08-21 13:52:20 -04:00
parent 71395003c1
commit ba4b7a018e
1 changed files with 41 additions and 22 deletions

View File

@ -43,6 +43,8 @@ describe UsersController, type: :controller do
end
describe "GET #new" do
before { allow(Rails.configuration).to receive(:allow_user_signup).and_return(true) }
it "assigns a blank user to the view" do
get :new
expect(assigns(:user)).to be_a_new(User)
@ -50,7 +52,10 @@ describe UsersController, type: :controller do
end
describe "POST #create" do
it "redirects to user room on succesful create" do
context "allow greenlight accounts" do
before { allow(Rails.configuration).to receive(:allow_user_signup).and_return(true) }
it "redirects to user room on successful create" do
params = random_valid_user_params
post :create, params: params
@ -61,14 +66,6 @@ describe UsersController, type: :controller do
expect(response).to redirect_to(room_path(u.main_room))
end
it "redirects to main room if already authenticated" do
user = create(:user)
@request.session[:user_id] = user.id
post :create, params: random_valid_user_params
expect(response).to redirect_to(room_path(user.main_room))
end
it "user saves with greenlight provider" do
params = random_valid_user_params
post :create, params: params
@ -85,6 +82,28 @@ describe UsersController, type: :controller do
end
end
context "disallow greenlight accounts" do
before { allow(Rails.configuration).to receive(:allow_user_signup).and_return(false) }
it "redirect to root on attempted create" do
params = random_valid_user_params
post :create, params: params
u = User.find_by(name: params[:user][:name], email: params[:user][:email])
expect(u).to be_nil
end
end
it "redirects to main room if already authenticated" do
user = create(:user)
@request.session[:user_id] = user.id
post :create, params: random_valid_user_params
expect(response).to redirect_to(room_path(user.main_room))
end
end
describe "PATCH #update" do
it "properly updates user attributes" do
user = create(:user)