branch
[akkoma] / test / web / mastodon_api / controllers / domain_block_controller_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.MastodonAPI.DomainBlockControllerTest do
6 use Pleroma.Web.ConnCase
7
8 alias Pleroma.User
9
10 import Pleroma.Factory
11
12 test "blocking / unblocking a domain", %{conn: conn} do
13 user = insert(:user)
14 other_user = insert(:user, %{ap_id: "https://dogwhistle.zone/@pundit"})
15
16 conn =
17 conn
18 |> assign(:user, user)
19 |> post("/api/v1/domain_blocks", %{"domain" => "dogwhistle.zone"})
20
21 assert %{} = json_response(conn, 200)
22 user = User.get_cached_by_ap_id(user.ap_id)
23 assert User.blocks?(user, other_user)
24
25 conn =
26 build_conn()
27 |> assign(:user, user)
28 |> delete("/api/v1/domain_blocks", %{"domain" => "dogwhistle.zone"})
29
30 assert %{} = json_response(conn, 200)
31 user = User.get_cached_by_ap_id(user.ap_id)
32 refute User.blocks?(user, other_user)
33 end
34
35 test "getting a list of domain blocks", %{conn: conn} do
36 user = insert(:user)
37
38 {:ok, user} = User.block_domain(user, "bad.site")
39 {:ok, user} = User.block_domain(user, "even.worse.site")
40
41 conn =
42 conn
43 |> assign(:user, user)
44 |> get("/api/v1/domain_blocks")
45
46 domain_blocks = json_response(conn, 200)
47
48 assert "bad.site" in domain_blocks
49 assert "even.worse.site" in domain_blocks
50 end
51 end