forked from External/greenlight
test sessions controller
This commit is contained in:
45
test/controllers/sessions_controller_test.rb
Normal file
45
test/controllers/sessions_controller_test.rb
Normal file
@ -0,0 +1,45 @@
|
||||
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
|
Reference in New Issue
Block a user