Merge branch 'add-secure-and-samesite-cookie-flags' into 'develop'
[akkoma] / test / filter_test.exs
1 defmodule Pleroma.FilterTest do
2 alias Pleroma.{User, Repo}
3 use Pleroma.DataCase
4
5 import Pleroma.Factory
6 import Ecto.Query
7
8 test "creating a filter" do
9 user = insert(:user)
10
11 query = %Pleroma.Filter{
12 user_id: user.id,
13 filter_id: 42,
14 phrase: "knights",
15 context: ["home"]
16 }
17
18 {:ok, %Pleroma.Filter{} = filter} = Pleroma.Filter.create(query)
19 result = Pleroma.Filter.get(filter.filter_id, user)
20 assert query.phrase == result.phrase
21 end
22
23 test "deleting a filter" do
24 user = insert(:user)
25
26 query = %Pleroma.Filter{
27 user_id: user.id,
28 filter_id: 0,
29 phrase: "knights",
30 context: ["home"]
31 }
32
33 {:ok, filter} = Pleroma.Filter.create(query)
34 {:ok, filter} = Pleroma.Filter.delete(query)
35 assert is_nil(Repo.get(Pleroma.Filter, filter.filter_id))
36 end
37
38 test "getting all filters by an user" do
39 user = insert(:user)
40
41 query_one = %Pleroma.Filter{
42 user_id: user.id,
43 filter_id: 1,
44 phrase: "knights",
45 context: ["home"]
46 }
47
48 query_two = %Pleroma.Filter{
49 user_id: user.id,
50 filter_id: 2,
51 phrase: "who",
52 context: ["home"]
53 }
54
55 {:ok, filter_one} = Pleroma.Filter.create(query_one)
56 {:ok, filter_two} = Pleroma.Filter.create(query_two)
57 filters = Pleroma.Filter.get_filters(user)
58 assert filter_one in filters
59 assert filter_two in filters
60 end
61
62 test "updating a filter" do
63 user = insert(:user)
64
65 query_one = %Pleroma.Filter{
66 user_id: user.id,
67 filter_id: 1,
68 phrase: "knights",
69 context: ["home"]
70 }
71
72 query_two = %Pleroma.Filter{
73 user_id: user.id,
74 filter_id: 1,
75 phrase: "who",
76 context: ["home", "timeline"]
77 }
78
79 {:ok, filter_one} = Pleroma.Filter.create(query_one)
80 {:ok, filter_two} = Pleroma.Filter.update(query_two)
81 assert filter_one != filter_two
82 assert filter_two.phrase == query_two.phrase
83 assert filter_two.context == query_two.context
84 end
85 end