Elixir/Phoenix/Guardian - Назначение current_user в conn не работает для тестирования

Если есть такие контроллеры, как это

def index(%{assigns: %{current_user: %User{} = current_user}}} = conn, params) do
    ## User exists
end

def index(conn, params) do
    ## No user exists
end

Если я запускаю этот тест, я ожидаю, что он вызовет первое действие #index, но он вызывает второе действие, без пользователей, и по conn присваивает %{current_user: nil}

test "GET /posts", %{conn: conn} do
    user = insert(:user)
    conn = assign(conn, :current_user, user)
    get(conn, post_path(conn, :index))
end

Почему current_user не назначен правильно? Почему это исчезает?

1 ответ

Я не уверен, но попробуйте это вместо

def index (conn,params)
 current_user = conn.assigns.current_user
## User exists
end

попробуй это

Другие вопросы по тегам