mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-03-25 09:24:43 +00:00
59 lines
1.8 KiB
Ruby
59 lines
1.8 KiB
Ruby
require 'test_helper'
|
|
|
|
class SessionsControllerTest < ActionController::TestCase
|
|
def setup
|
|
@user = users(:one)
|
|
@user.email = 'user@example.com'
|
|
@user.password_digest = BCrypt::Password.create('password')
|
|
@user.save
|
|
end
|
|
|
|
test "should get new" do
|
|
get :new
|
|
assert_response :success
|
|
assert_select 'h1', 'Log in'
|
|
assert_select "a[href=?]", new_password_reset_path, text: "Forgot password?"
|
|
end
|
|
|
|
test "login page should have forgot password link" do
|
|
get :new
|
|
assert_response :success
|
|
assert_select "a[href=?]", new_password_reset_path, text: "Forgot password?"
|
|
end
|
|
|
|
test "should create session with valid credentials" do
|
|
post :create, params: { session: { email: @user.email, password: 'password' } }
|
|
assert_redirected_to root_path
|
|
assert_equal @user.id, session[:user_id]
|
|
assert_not_nil flash[:notice]
|
|
end
|
|
|
|
test "should not create session with invalid email" do
|
|
post :create, params: { session: { email: 'wrong@example.com', password: 'password' } }
|
|
assert_template 'new'
|
|
assert_nil session[:user_id]
|
|
assert_select 'div.alert'
|
|
end
|
|
|
|
test "should not create session with invalid password" do
|
|
post :create, params: { session: { email: @user.email, password: 'wrongpassword' } }
|
|
assert_template 'new'
|
|
assert_nil session[:user_id]
|
|
assert_select 'div.alert'
|
|
end
|
|
|
|
test "should destroy session" do
|
|
session[:user_id] = @user.id
|
|
delete :destroy
|
|
assert_redirected_to root_path
|
|
assert_nil session[:user_id]
|
|
assert_not_nil flash[:notice]
|
|
end
|
|
|
|
test "should redirect to root after login" do
|
|
target_url = edit_user_path(@user)
|
|
session[:forwarding_url] = target_url
|
|
post :create, params: { session: { email: @user.email, password: 'password' } }
|
|
assert_redirected_to root_path
|
|
end
|
|
end |