This repository has been archived on 2021-10-24. You can view files and clone it, but cannot push or open issues or pull requests.
greenlight/spec/controllers/users_controller_spec.rb

86 lines
1.9 KiB
Ruby
Raw Normal View History

2018-06-27 17:00:37 -04:00
# frozen_string_literal: true
2018-06-25 15:49:56 -04:00
require "rails_helper"
describe UsersController, type: :controller do
2018-06-27 17:00:37 -04:00
let(:user_params) do
2018-06-25 15:49:56 -04:00
{
user: {
name: "Example",
email: "example@example.com",
password: "password",
2018-06-27 17:00:37 -04:00
password_confirmation: "password",
},
2018-06-25 15:49:56 -04:00
}
2018-06-27 17:00:37 -04:00
end
2018-06-25 15:49:56 -04:00
2018-06-27 17:00:37 -04:00
let(:invalid_params) do
2018-06-25 15:49:56 -04:00
{
user: {
name: "Invalid",
email: "example.com",
password: "pass",
2018-06-27 17:00:37 -04:00
passwrd_confirmation: "invalid",
},
2018-06-25 15:49:56 -04:00
}
2018-06-27 17:00:37 -04:00
end
2018-06-25 15:49:56 -04:00
describe "GET #new" do
it "assigns a blank user to the view" do
get :new
expect(assigns(:user)).to be_a_new(User)
end
end
describe "POST #create" do
it "redirects to user room on succesful create" do
post :create, params: user_params
u = User.last
expect(u).to_not be_nil
expect(u.name).to eql("Example")
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: user_params
expect(response).to redirect_to(room_path(user.main_room))
end
it "user saves with greenlight provider" do
post :create, params: user_params
u = User.last
expect(u.provider).to eql("greenlight")
end
it "renders #new on unsuccessful save" do
post :create, params: invalid_params
expect(response).to render_template(:new)
end
end
describe "PATCH #update" do
it "properly updates user attributes" do
@user = create(:user)
patch :update, params: user_params.merge!(user_uid: @user)
@user.reload
expect(@user.name).to eql("Example")
expect(@user.email).to eql("example@example.com")
end
it "renders #edit on unsuccessful save" do
@user = create(:user)
patch :update, params: invalid_params.merge!(user_uid: @user)
expect(response).to render_template(:edit)
end
end
end