Cannot fetch key "_format" from conn.params because they were not fetched in test

I am testing a user auth module that is based of UserAuth module from mix phx.gen.auth command but encountered this cannot fetch key "_format" from conn.params because they were not fetched. Configure and invoke Plug.Parsers to set params based on the request.

Does conn in setup block not uses the same config from AppWeb.Endpoint where Plug.Parsers has been configured?

Here’s my test.

defmodule MonoWeb.UserAuthTest do
  use MonoWeb.ConnCase, async: true

  alias Mono.Accounts
  alias MonoWeb.UserAuth
  import Mono.AccountsFixtures

  @user_session "_mono_user_session"

  setup %{conn: conn} do
    conn =
      conn
      |> Map.replace!(:secret_key_base, MonoWeb.Endpoint.config(:secret_key_base))
      |> init_test_session(%{})

    %{user: user_fixture(), conn: conn}
  end

  describe "log_in_user/3" do
    test "stores the user token in the session", %{conn: conn, user: user} do
      conn = UserAuth.log_in_user(conn, user)
      assert token = get_session(conn, :user_token)
      assert Accounts.get_user_by_session_token(token)
    end

    test "clears everything previously stored in the session", %{conn: conn, user: user} do
      conn = conn |> put_session(:to_be_removed, "value") |> UserAuth.log_in_user(user)
      refute get_session(conn, :to_be_removed)
    end

    test "persists user session in a cookie", %{conn: conn, user: user} do
      conn = conn |> fetch_cookies() |> UserAuth.log_in_user(user)
      assert get_session(conn, :user_token) == conn.cookies[@user_session]

      assert %{value: signed_token, max_age: max_age} = conn.resp_cookies[@user_session]
      assert signed_token != get_session(conn, :user_token)
      assert max_age == 5_184_000
    end
  end
end