Remove vapidPublicKey from Nodeinfo
[akkoma] / test / web / mastodon_api / controllers / filter_controller_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.MastodonAPI.FilterControllerTest do
6 use Pleroma.Web.ConnCase
7
8 alias Pleroma.Web.MastodonAPI.FilterView
9
10 test "creating a filter" do
11 %{conn: conn} = oauth_access(["write:filters"])
12
13 filter = %Pleroma.Filter{
14 phrase: "knights",
15 context: ["home"]
16 }
17
18 conn = post(conn, "/api/v1/filters", %{"phrase" => filter.phrase, context: filter.context})
19
20 assert response = json_response(conn, 200)
21 assert response["phrase"] == filter.phrase
22 assert response["context"] == filter.context
23 assert response["irreversible"] == false
24 assert response["id"] != nil
25 assert response["id"] != ""
26 end
27
28 test "fetching a list of filters" do
29 %{user: user, conn: conn} = oauth_access(["read:filters"])
30
31 query_one = %Pleroma.Filter{
32 user_id: user.id,
33 filter_id: 1,
34 phrase: "knights",
35 context: ["home"]
36 }
37
38 query_two = %Pleroma.Filter{
39 user_id: user.id,
40 filter_id: 2,
41 phrase: "who",
42 context: ["home"]
43 }
44
45 {:ok, filter_one} = Pleroma.Filter.create(query_one)
46 {:ok, filter_two} = Pleroma.Filter.create(query_two)
47
48 response =
49 conn
50 |> get("/api/v1/filters")
51 |> json_response(200)
52
53 assert response ==
54 render_json(
55 FilterView,
56 "filters.json",
57 filters: [filter_two, filter_one]
58 )
59 end
60
61 test "get a filter" do
62 %{user: user, conn: conn} = oauth_access(["read:filters"])
63
64 query = %Pleroma.Filter{
65 user_id: user.id,
66 filter_id: 2,
67 phrase: "knight",
68 context: ["home"]
69 }
70
71 {:ok, filter} = Pleroma.Filter.create(query)
72
73 conn = get(conn, "/api/v1/filters/#{filter.filter_id}")
74
75 assert _response = json_response(conn, 200)
76 end
77
78 test "update a filter" do
79 %{user: user, conn: conn} = oauth_access(["write:filters"])
80
81 query = %Pleroma.Filter{
82 user_id: user.id,
83 filter_id: 2,
84 phrase: "knight",
85 context: ["home"]
86 }
87
88 {:ok, _filter} = Pleroma.Filter.create(query)
89
90 new = %Pleroma.Filter{
91 phrase: "nii",
92 context: ["home"]
93 }
94
95 conn =
96 put(conn, "/api/v1/filters/#{query.filter_id}", %{
97 phrase: new.phrase,
98 context: new.context
99 })
100
101 assert response = json_response(conn, 200)
102 assert response["phrase"] == new.phrase
103 assert response["context"] == new.context
104 end
105
106 test "delete a filter" do
107 %{user: user, conn: conn} = oauth_access(["write:filters"])
108
109 query = %Pleroma.Filter{
110 user_id: user.id,
111 filter_id: 2,
112 phrase: "knight",
113 context: ["home"]
114 }
115
116 {:ok, filter} = Pleroma.Filter.create(query)
117
118 conn = delete(conn, "/api/v1/filters/#{filter.filter_id}")
119
120 assert response = json_response(conn, 200)
121 assert response == %{}
122 end
123 end