【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にも対応できました。