質問編集履歴

1

自分の確認した所を理由付きで記載

2020/01/10 07:44

投稿

jqk
jqk

スコア26

test CHANGED
File without changes
test CHANGED
@@ -12,45 +12,73 @@
12
12
 
13
13
  ```
14
14
 
15
+
16
+
17
+
18
+
15
- 下記がusers_login_test.rbの中身です。
19
+ 下記がsessions_controller.rbのcreateアクションの中身です。SessionsControllerのcreateアクションのローカル変数か,メソッドが定義されていないと書いてありましたので、怪しそうなlog_in userとremember userを確認したんですが、SessionsHelperに記載されています。
16
20
 
17
21
  ```
18
22
 
19
- require 'test_helper'
23
+ [SessionsController]
20
24
 
21
25
 
22
26
 
23
- class UsersLoginTest < ActionDispatch::IntegrationTest
27
+ def create
24
28
 
25
- def setup
29
+ user = User.find_by(email: params[:session][:email].downcase)
26
30
 
31
+ if user && user.authenticate(params[:session][:password])
32
+
33
+ log_in user
34
+
35
+ remember user   # SessionsHelper
36
+
37
+ redirect_to user
38
+
39
+ else
40
+
41
+ flash.now[:danger] = 'Invalid email/password combination'
42
+
43
+ render 'new'
44
+
45
+ end
46
+
47
+ end
48
+
49
+ ```
50
+
51
+ ```
52
+
53
+ [SessionsHelper]
54
+
55
+
56
+
57
+ def log_in(user)
58
+
27
- @user = users(:michael)
59
+ session[:user_id] = user.id
28
60
 
29
61
  end
30
62
 
31
63
 
32
64
 
33
- test "login with invalid information" do
65
+ def remember(user)
34
66
 
35
- get login_path
67
+ user.remember
36
68
 
37
- assert_template 'sessions/new'
69
+ cookies.permanent.signed[:user_id] = user.id 
38
70
 
39
- post login_path, params: { session: { email: "", password: "" } }
40
-
41
- assert_template 'sessions/new'
71
+ cookies.permanent[:remember_token] = user.remember_token  
42
-
43
- assert_not flash.empty?
44
-
45
- get root_path
46
-
47
- assert flash.empty?
48
72
 
49
73
  end
50
74
 
75
+ ```
51
76
 
77
+ 他にusers_login_test.rbに対するエラー内容が記載されていたので、22行目(自分のPC)のpost login_pathを確認しているんですが、何が間違っているのかわかりませんでした。ご教授頂ければ幸いです。宜しくお願い致します。
52
78
 
79
+ ```
80
+
53
- test "login with valid information followed by logout" do
81
+ test "login with valid information followed by logout" do
54
82
 
55
83
  get login_path
56
84
 
@@ -80,7 +108,7 @@
80
108
 
81
109
  assert_redirected_to root_url
82
110
 
83
- # 2番目のウィンドウでログアウトをクリックするユーザーをシミュレートする
111
+
84
112
 
85
113
  delete logout_path
86
114
 
@@ -94,38 +122,4 @@
94
122
 
95
123
  end
96
124
 
97
-
98
-
99
125
  ```
100
-
101
- 下記がsessions_controller.rbのcreateアクションの中身です。
102
-
103
- ```
104
-
105
- def create
106
-
107
- user = User.find_by(email: params[:session][:email].downcase)
108
-
109
- if user && user.authenticate(params[:session][:password])
110
-
111
- log_in user
112
-
113
- remember user   # SessionsHelper
114
-
115
- redirect_to user
116
-
117
- else
118
-
119
- flash.now[:danger] = 'Invalid email/password combination'
120
-
121
- render 'new'
122
-
123
- end
124
-
125
- end
126
-
127
- ```
128
-
129
-
130
-
131
- sessions_controllerのcreateアクションのどの部分が間違っているか分かる方いらっしゃいますか?