我有一个插件,他负责从请求中获取cookie,这是一个令牌并验证它。
我目前正在设置我的测试以在conn中传递cookie。
setup do
token = "some string"
conn =
conn(:get, "/")
|> put_req_cookie("session_token", token)
%{conn: MyPlug.call(conn, [])}
end
test "user passes through when token is valid", %{conn: conn} do
require IEx; IEx.pry
assert conn.status == 200
end
在我的调试器中,如果我选中conn.cookies
我得到%Plug.Conn.Unfetched{aspect: :cookies}
。
我有什么遗失的吗?
答案 0 :(得分:2)
put_req_cookie
只会向cookie
结构添加conn
标头。您需要在此之后调用Plug.Conn.fetch_cookies
来解析Cookie标头并将其加载到cookies
地图中。以下代码应该有效:
conn =
conn(:get, "/")
|> put_req_cookie("session_token", token)
|> fetch_cookies()