1
0
mirror of https://github.com/jcwimer/wrestlingApp synced 2026-03-25 09:24:43 +00:00
Files
wrestlingdev.com/test/controllers/users_controller_test.rb

82 lines
2.5 KiB
Ruby

require 'test_helper'
class UsersControllerTest < ActionController::TestCase
def setup
@user = users(:one)
@user.password_digest = BCrypt::Password.create('password')
@user.save
@other_user = users(:two)
@other_user.password_digest = BCrypt::Password.create('password')
@other_user.save
end
test "should get new" do
get :new
assert_response :success
assert_template 'users/new'
end
test "should create user with valid information" do
assert_difference('User.count') do
post :create, params: { user: { email: "test@example.com",
password: "password", password_confirmation: "password" } }
end
assert_redirected_to root_path
assert_not_nil session[:user_id]
end
test "should not create user with invalid information" do
assert_no_difference('User.count') do
post :create, params: { user: { email: "invalid",
password: "pass", password_confirmation: "word" } }
end
assert_template 'new'
end
test "should get edit when logged in" do
sign_in(@user)
get :edit, params: { id: @user.id }
assert_response :success
assert_template 'users/edit'
end
test "should redirect edit when not logged in" do
get :edit, params: { id: @user.id }
assert_redirected_to login_path
end
test "should redirect edit when logged in as wrong user" do
sign_in(@other_user)
get :edit, params: { id: @user.id }
assert_redirected_to root_path
end
test "should update user with valid information" do
sign_in(@user)
patch :update, params: { id: @user.id, user: {
password: "newpassword",
password_confirmation: "newpassword" } }
assert_redirected_to root_path
@user.reload
end
test "should not update user with invalid information" do
sign_in(@user)
patch :update, params: { id: @user.id, user: {
password: "new",
password_confirmation: "password" } }
assert_template 'edit'
end
test "should redirect update when not logged in" do
patch :update, params: { id: @user.id, user: { email: "new@example.com" } }
assert_redirected_to login_path
end
test "should redirect update when logged in as wrong user" do
sign_in(@other_user)
patch :update, params: { id: @user.id, user: { email: "new@example.com" } }
assert_redirected_to root_path
end
end