【Elixir】PhoenixLiveSession 使用時にテストでエラーが出る対処方法
PhoenixLiveSession 使用時にテストする際、エラーが出てしまいます。
今回はその対処方法をメモです。
環境
- Elixir 1.14.2
- Phoenix 1.6.3
- PhoenixLiveSession 0.1.3
エラー
LiveViewSessionを使用した箇所で以下のエラーが発生しました。
** (KeyError) key :__sid__ not found in: %{"_csrf_token" => "XXXXXXXXXXXXXXX"}
:erlang.map_get(:__sid__, %{"_csrf_token" => "XXXXXXXXXXXXXXX"})
原因
原因は PhoenixLiveSession
使用時に、セッションに :__sid__
が入るのですがテスト時に入ってないことが原因でした。
他にも :__opts__
が入っていないことが原因でした。
対処方法
対処方法は PhoenixLiveSession
に必要なデータをセッションに入れることで可能です。test/support/conn_case.ex
の tags
を編集します。
|
|
これで PhoenixLiveSession
を使用したLiveViewにも対応できました。