Из этого учебник по простой аутентификации
Я хочу проверить маршруты приложения внутри :login_required
a> конвейер (который просто проверяет, вызвал ли клиент Guardian.Plug.sign_in(conn, user)
)
Поскольку действие user_path
show
должно быть передано по конвейеру через конвейер :login_required
, я бы подумал, что для проверки этого маршрута мне просто нужно будет написать следующее:
Auth.login_by_email_and_pass(conn, user.email, @password)
а затем передать conn
, который выходит из этого, в:
get conn, user_path(conn, :show, user.id)
и убедитесь, что я получаю код состояния 200
.
Но я не могу пройти строку Auth.login_by_email_and_pass(conn, email, password)
и получаю ошибку:
session not fetched, call fetch_session/2
Где взять сессию?
Я пробовал bypass_through(conn, [:browser, :with_session])
Я бы подумал, что конвейер :browser
вызывает fetch_session
, что решило бы эту проблему.
Я также пытался вызывать fetch_session
до и после, но все равно получаю ту же ошибку.
init_test_session/2
, например:conn = conn |> init_test_session(%{}) |> Auth.login_by_email_and_pass(user.email, @password)
. - person Dogbert   schedule 16.07.2017