defmodule ToweropsWeb.Plugs.UpdateSessionActivityTest do use ToweropsWeb.ConnCase, async: false alias ToweropsWeb.Plugs.UpdateSessionActivity describe "init/1" do test "passes through opts unchanged" do assert UpdateSessionActivity.init(:some_opts) == :some_opts end end describe "call/2" do test "passes through when no user_token in session", %{conn: conn} do conn = conn |> init_test_session(%{}) |> UpdateSessionActivity.call(%{}) assert conn.state == :unset end test "starts background task when user_token present", %{conn: conn} do conn = conn |> init_test_session(%{user_token: "existing-token"}) |> UpdateSessionActivity.call(%{}) assert conn.state == :unset end test "starts background task when user_token and live_socket_id present", %{conn: conn} do # Exercises the get_session/2 call for :live_socket_id within call/2. conn = conn |> init_test_session(%{ user_token: "existing-token", live_socket_id: "users_sessions:abc" }) |> UpdateSessionActivity.call(%{}) assert conn.state == :unset end end end