從這個Simple authentication tutorial鳳凰簡單的身份驗證測試登錄的用戶
我期待測試:login_required
管道內的應用途徑(這只是檢查,如果客戶端已調用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',像這樣:'康恩=康恩|> init_test_session(%{})|> Auth.login_by_email_and_pass(user.email,@password)'。 – Dogbert
@Dogbert謝謝你,現在,如果你發佈一個答案,我會接受它 –