diff options
| author | Egor Kislitsyn <egor@kislitsyn.com> | 2020-03-16 15:31:31 +0400 | 
|---|---|---|
| committer | Egor Kislitsyn <egor@kislitsyn.com> | 2020-03-16 15:31:31 +0400 | 
| commit | 421e35b578b3fc109f820f693e91139a3e3f8970 (patch) | |
| tree | 37da58962582854597cd068c603b8ba23e10f7bb /test/plugs/ensure_authenticated_plug_test.exs | |
| parent | d1c7f8e576e31487544b57d67802843b8ef38388 (diff) | |
| parent | c2527b8c63a4e35b121981efe2c39cc54c77648d (diff) | |
| download | pleroma-421e35b578b3fc109f820f693e91139a3e3f8970.tar.gz pleroma-421e35b578b3fc109f820f693e91139a3e3f8970.zip | |
Merge branch 'develop' into global-status-expiration
Diffstat (limited to 'test/plugs/ensure_authenticated_plug_test.exs')
| -rw-r--r-- | test/plugs/ensure_authenticated_plug_test.exs | 66 | 
1 files changed, 52 insertions, 14 deletions
| diff --git a/test/plugs/ensure_authenticated_plug_test.exs b/test/plugs/ensure_authenticated_plug_test.exs index 18be5edd0..7f3559b83 100644 --- a/test/plugs/ensure_authenticated_plug_test.exs +++ b/test/plugs/ensure_authenticated_plug_test.exs @@ -8,24 +8,62 @@ defmodule Pleroma.Plugs.EnsureAuthenticatedPlugTest do    alias Pleroma.Plugs.EnsureAuthenticatedPlug    alias Pleroma.User -  test "it halts if no user is assigned", %{conn: conn} do -    conn = -      conn -      |> EnsureAuthenticatedPlug.call(%{}) +  describe "without :if_func / :unless_func options" do +    test "it halts if user is NOT assigned", %{conn: conn} do +      conn = EnsureAuthenticatedPlug.call(conn, %{}) -    assert conn.status == 403 -    assert conn.halted == true +      assert conn.status == 403 +      assert conn.halted == true +    end + +    test "it continues if a user is assigned", %{conn: conn} do +      conn = assign(conn, :user, %User{}) +      ret_conn = EnsureAuthenticatedPlug.call(conn, %{}) + +      assert ret_conn == conn +    end    end -  test "it continues if a user is assigned", %{conn: conn} do -    conn = -      conn -      |> assign(:user, %User{}) +  describe "with :if_func / :unless_func options" do +    setup do +      %{ +        true_fn: fn -> true end, +        false_fn: fn -> false end +      } +    end + +    test "it continues if a user is assigned", %{conn: conn, true_fn: true_fn, false_fn: false_fn} do +      conn = assign(conn, :user, %User{}) +      assert EnsureAuthenticatedPlug.call(conn, if_func: true_fn) == conn +      assert EnsureAuthenticatedPlug.call(conn, if_func: false_fn) == conn +      assert EnsureAuthenticatedPlug.call(conn, unless_func: true_fn) == conn +      assert EnsureAuthenticatedPlug.call(conn, unless_func: false_fn) == conn +    end + +    test "it continues if a user is NOT assigned but :if_func evaluates to `false`", +         %{conn: conn, false_fn: false_fn} do +      assert EnsureAuthenticatedPlug.call(conn, if_func: false_fn) == conn +    end + +    test "it continues if a user is NOT assigned but :unless_func evaluates to `true`", +         %{conn: conn, true_fn: true_fn} do +      assert EnsureAuthenticatedPlug.call(conn, unless_func: true_fn) == conn +    end + +    test "it halts if a user is NOT assigned and :if_func evaluates to `true`", +         %{conn: conn, true_fn: true_fn} do +      conn = EnsureAuthenticatedPlug.call(conn, if_func: true_fn) + +      assert conn.status == 403 +      assert conn.halted == true +    end -    ret_conn = -      conn -      |> EnsureAuthenticatedPlug.call(%{}) +    test "it halts if a user is NOT assigned and :unless_func evaluates to `false`", +         %{conn: conn, false_fn: false_fn} do +      conn = EnsureAuthenticatedPlug.call(conn, unless_func: false_fn) -    assert ret_conn == conn +      assert conn.status == 403 +      assert conn.halted == true +    end    end  end | 
