+ conn = conn
+ |> Plug.Session.call(Plug.Session.init(@session_opts))
+ |> fetch_session
+ |> put_req_header("authorization", header)
+ |> AuthenticationPlug.call(opts)
+
+ assert %{ user: @user } == conn.assigns
+ assert get_session(conn, :user_id) == @user.id
+ assert conn.halted == false
+ end
+ end
+
+ describe "with a user_id in the session for an existing user" do
+ test "it assigns the user", %{conn: conn} do
+ opts = %{
+ optional: true,
+ fetcher: &fetch_user/1
+ }
+
+ header = basic_auth_enc("dude", "THIS IS WRONG")
+
+ conn = conn
+ |> Plug.Session.call(Plug.Session.init(@session_opts))
+ |> fetch_session
+ |> put_session(:user_id, @user.id)