fix tests
[akkoma] / test / pleroma / web / plugs / ensure_public_or_authenticated_plug_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.Plugs.EnsurePublicOrAuthenticatedPlugTest do
6 use Pleroma.Web.ConnCase
7
8 alias Pleroma.User
9 alias Pleroma.Web.Plugs.EnsurePublicOrAuthenticatedPlug
10
11 setup do: clear_config([:instance, :public])
12
13 test "it halts if not public and no user is assigned", %{conn: conn} do
14 clear_config([:instance, :public], false)
15
16 conn =
17 conn
18 |> EnsurePublicOrAuthenticatedPlug.call(%{})
19
20 assert conn.status == 403
21 assert conn.halted == true
22 end
23
24 test "it continues if public", %{conn: conn} do
25 clear_config([:instance, :public], true)
26
27 ret_conn =
28 conn
29 |> EnsurePublicOrAuthenticatedPlug.call(%{})
30
31 refute ret_conn.halted
32 end
33
34 test "it continues if a user is assigned, even if not public", %{conn: conn} do
35 clear_config([:instance, :public], false)
36
37 conn =
38 conn
39 |> assign(:user, %User{})
40
41 ret_conn =
42 conn
43 |> EnsurePublicOrAuthenticatedPlug.call(%{})
44
45 refute ret_conn.halted
46 end
47 end