Testing

To test routes that require authentication in your Phoenix application, utilize the MagicAuth.TestHelpers.log_in_session/2 function as demonstrated below:

defmodule MyApp.MyModuleTest do
  use MyApp.ConnCase, async: true
  import MagicAuth.TestHelpers

  setup do
    conn = build_conn() |> Plug.Test.init_test_session(%{})
    %{conn: conn}
  end

  test "creates a session and puts token in session", %{conn: conn} do
    params = %{email: "test@example.com"}
    conn = log_in_session(conn, params)
    # Test assertions
  end
end

Remember to disable rate limiting in your test environment to prevent test failures.

# config/test.exs
config :magic_auth,
  enable_rate_limit: false