Я сталкиваюсь с проблемой, когда все тесты, в которых мне нужно подтвердить более чем одну вещь с вошедшим в систему пользователем, похоже, что он теряет сохраненный сеанс.
У меня есть код настройки, который назначает пользователя прибора перед каждым тестом:
setup %{conn: conn} = config do
if username = config[:login_as] do
user = insert_user(username: username)
conn = assign(conn, :current_user, user)
{:ok, conn: conn, user: user}
else
:ok
end
end
Все мои тесты, которые происходят в области входа в систему, имеют тег login_as: "username"
.
@tag login_as: "max"
test "redirects to show when data is valid", %{conn: conn} do
conn = post conn, debit_event_path(conn, :create), debit_event: @create_attrs
assert %{id: id} = redirected_params(conn)
assert redirected_to(conn) == debit_event_path(conn, :show, id) #1
conn = get conn, debit_event_path(conn, :show, id)
assert html_response(conn, 200) =~ "Show Debit event" #2
end
Первое утверждение (комментарий # 1 в коде) всегда работает, но по какой-то причине второе утверждение (комментарий # 2 в коде) не выполняется, и оно ведет себя так, как будто мое пользователь вышел из системы. Это происходит во всех случаях, когда мне нужно сохранить пользователя между запросами.
Существует ли правильный подход для сохранения этих данных в запросах на тестирование, поскольку это был запрос браузера?