質問編集履歴

1

テスト対象のコードを「補足情報」に追記しました。よろしくお願いいたします。

2022/12/17 22:32

投稿

JIN_OTOSHA
JIN_OTOSHA

スコア9

test CHANGED
File without changes
test CHANGED
@@ -62,5 +62,62 @@
62
62
 
63
63
  ### 補足情報(FW/ツールのバージョンなど)
64
64
 
65
+ テスト対象のコードは、次の通りです。
66
+ ```
67
+ module SessionsHelper
68
+
69
+ # Logs in the given user.
70
+ def log_in(user)
71
+ session[:user_id] = user.id
72
+ end
73
+
74
+ # Remembers a user in a persistent session
75
+ def remember(user)
76
+ user.remember
77
+ cookies.permanent.encrypted[:user_id] = user.id
78
+ cookies.permanent[:remember_token] = user.remember_token
79
+ end
80
+
81
+ #Returns the user corresponding to the remember token cookie.
82
+ def current_user
83
+ if (user_id = session[:user_id])
84
+ @current_user ||= User.find_by(id: user_id)
85
+ elsif (user_id = cookies.encrypted[:user_id])
86
+ user = User.find_by(id: user_id)
87
+ if user && user.authenticated?(cookies[:remember_token])
88
+ log_in user
89
+ @current_user = user
90
+ end
91
+ end
92
+ end
93
+
94
+ # Returns the current logged-in user (if any)
95
+ def current_user
96
+ if session[:user_id]
97
+ @current_user ||= User.find_by(id: session[:user_id])
98
+ end
99
+ end
100
+
101
+ # Returns true if the user is logged in, false otherwise.
102
+ def logged_in?
103
+ !current_user.nil?
104
+ end
105
+
106
+ # Forgets a persistent session.
107
+ def forget(user)
108
+ user.forget
109
+ cookies.delete(:user_id)
110
+ cookies.delete(:remember_token)
111
+ end
112
+
113
+ # Logs out the current user.
114
+ def log_out
115
+ forget(current_user)
116
+ reset_session
117
+ @current_user = nil
118
+ end
119
+ end
120
+ ```
121
+
65
122
  初心者で初めての質問です。行き届かない所があろうかと思いますが、ご指導頂けると嬉しいです。よろしくお願いいたします。
66
123