ensure_user_token_assigns_plug_test.exs (1951B)
- # Pleroma: A lightweight social networking server
 - # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
 - # SPDX-License-Identifier: AGPL-3.0-only
 - defmodule Pleroma.Web.Plugs.EnsureUserTokenAssignsPlugTest do
 - use Pleroma.Web.ConnCase, async: true
 - import Pleroma.Factory
 - alias Pleroma.Web.Plugs.EnsureUserTokenAssignsPlug
 - test "with :user assign set to a User record " <>
 - "and :token assign set to a Token belonging to this user, " <>
 - "it does nothing" do
 - %{conn: conn} = oauth_access(["read"])
 - ret_conn = EnsureUserTokenAssignsPlug.call(conn, %{})
 - assert conn == ret_conn
 - end
 - test "with :user assign set to a User record " <>
 - "but :token assign not set or not a Token, " <>
 - "it assigns :token to `nil`",
 - %{conn: conn} do
 - user = insert(:user)
 - conn = assign(conn, :user, user)
 - ret_conn = EnsureUserTokenAssignsPlug.call(conn, %{})
 - assert %{token: nil} = ret_conn.assigns
 - ret_conn2 =
 - conn
 - |> assign(:token, 1)
 - |> EnsureUserTokenAssignsPlug.call(%{})
 - assert %{token: nil} = ret_conn2.assigns
 - end
 - # Abnormal (unexpected) scenario
 - test "with :user assign set to a User record " <>
 - "but :token assign set to a Token NOT belonging to :user, " <>
 - "it drops auth info" do
 - %{conn: conn} = oauth_access(["read"])
 - other_user = insert(:user)
 - conn = assign(conn, :user, other_user)
 - ret_conn = EnsureUserTokenAssignsPlug.call(conn, %{})
 - assert %{user: nil, token: nil} = ret_conn.assigns
 - end
 - test "if :user assign is not set to a User record, it sets :user and :token to nil", %{
 - conn: conn
 - } do
 - ret_conn = EnsureUserTokenAssignsPlug.call(conn, %{})
 - assert %{user: nil, token: nil} = ret_conn.assigns
 - ret_conn2 =
 - conn
 - |> assign(:user, 1)
 - |> EnsureUserTokenAssignsPlug.call(%{})
 - assert %{user: nil, token: nil} = ret_conn2.assigns
 - end
 - end