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
попробуй это