无法在插件测试中设置cookie

时间:2017-12-04 23:28:08

标签: elixir phoenix-framework

我有一个插件,他负责从请求中获取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}

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:2)

put_req_cookie只会向cookie结构添加conn标头。您需要在此之后调用Plug.Conn.fetch_cookies来解析Cookie标头并将其加载到cookies地图中。以下代码应该有效:

conn =
  conn(:get, "/")
  |> put_req_cookie("session_token", token)
  |> fetch_cookies()
相关问题