Elixir / Phoenix / Guardian - Назначение current_user в conn не работает для тестирования - PullRequest
0 голосов
/ 24 апреля 2018

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

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 Ответ

0 голосов
/ 09 мая 2018

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

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

попробуйте это

...