forked from External/greenlight
46 lines
1.1 KiB
Ruby
46 lines
1.1 KiB
Ruby
require 'test_helper'
|
|
|
|
class SessionsControllerTest < ActionController::TestCase
|
|
|
|
setup do
|
|
@user = users :user1
|
|
end
|
|
|
|
test "should get new" do
|
|
get :new
|
|
assert_response :success
|
|
end
|
|
|
|
test "should redirect to home on auth failture" do
|
|
get "auth_failure"
|
|
assert_redirected_to root_path
|
|
end
|
|
|
|
test "should not create session without omniauth env set" do
|
|
post :create, params: {provider: 'google'}
|
|
assert_redirected_to root_path
|
|
end
|
|
|
|
test "should create session and user" do
|
|
provider = 'google'
|
|
email = 'new_user@email.com'
|
|
request.env['omniauth.auth'] = {'uid' => 'uid', 'provider' => provider,
|
|
'info' => {'name' => 'name', 'email' => email}}
|
|
|
|
post :create, params: {provider: provider}
|
|
|
|
new_user = User.find_by email: email
|
|
|
|
assert_not_nil new_user
|
|
assert_redirected_to meeting_room_path(id: new_user.encrypted_id, resource: 'rooms')
|
|
assert_equal new_user.id, session[:user_id]
|
|
end
|
|
|
|
test "should destroy current session" do
|
|
session[:user_id] = @user.id
|
|
get :destroy
|
|
assert_redirected_to root_path
|
|
assert_nil session[:user_id]
|
|
end
|
|
end
|