-
Notifications
You must be signed in to change notification settings - Fork 1
/
users_login_test.rb
48 lines (43 loc) · 1.35 KB
/
users_login_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
require 'test_helper'
class UsersLoginTest < ActionDispatch::IntegrationTest
def setup
@user = users(:michael)
end
test 'login with invalid information' do
get login_path
assert_template 'sessions/new'
post login_path, session: { email: '', password: '' }
assert_template 'sessions/new'
assert_not flash.empty?
get root_path
assert flash.empty?
end
test 'login with valid information' do
get login_path
post login_path, session: { email: @user.email, password: 'password' }
assert is_logged_in?
assert_redirected_to @user
follow_redirect!
assert_template 'users/show'
assert_select 'a[href=?]', login_path, count: 0
assert_select 'a[href=?]', logout_path
assert_select 'a[href=?]', user_path(@user)
delete logout_path
assert_not is_logged_in?
assert_redirected_to root_url
# Simulate a user clicking logout in a second window.
delete logout_path
follow_redirect!
assert_select 'a[href=?]', login_path
assert_select 'a[href=?]', logout_path, count: 0
assert_select 'a[href=?]', user_path(@user), count: 0
end
test 'login with remembering' do
log_in_as(@user, remember_me: '1')
assert_not_nil cookies['remember_token']
end
test 'login without remembering' do
log_in_as(@user, remember_me: '0')
assert_nil cookies['remember_token']
end
end