1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.FilterTest do
13 describe "creating filters" do
14 test "creating one filter" do
24 {:ok, %Filter{} = filter} = Filter.create(query)
25 result = Filter.get(filter.filter_id, user)
26 assert query.phrase == result.phrase
29 test "creating one filter without a pre-defined filter_id" do
38 {:ok, %Filter{} = filter} = Filter.create(query)
40 assert filter.filter_id == 1
43 test "creating additional filters uses previous highest filter_id + 1" do
53 {:ok, %Filter{} = filter_one} = Filter.create(query_one)
62 {:ok, %Filter{} = filter_two} = Filter.create(query_two)
63 assert filter_two.filter_id == filter_one.filter_id + 1
66 test "filter_id is unique per user" do
67 user_one = insert(:user)
68 user_two = insert(:user)
76 {:ok, %Filter{} = filter_one} = Filter.create(query_one)
84 {:ok, %Filter{} = filter_two} = Filter.create(query_two)
86 assert filter_one.filter_id == 1
87 assert filter_two.filter_id == 1
89 result_one = Filter.get(filter_one.filter_id, user_one)
90 assert result_one.phrase == filter_one.phrase
92 result_two = Filter.get(filter_two.filter_id, user_two)
93 assert result_two.phrase == filter_two.phrase
97 test "deleting a filter" do
107 {:ok, _filter} = Filter.create(query)
108 {:ok, filter} = Filter.delete(query)
109 assert is_nil(Repo.get(Filter, filter.filter_id))
112 test "getting all filters by an user" do
129 {:ok, filter_one} = Filter.create(query_one)
130 {:ok, filter_two} = Filter.create(query_two)
131 filters = Filter.get_filters(user)
132 assert filter_one in filters
133 assert filter_two in filters
136 test "updating a filter" do
148 context: ["home", "timeline"]
151 {:ok, filter_one} = Filter.create(query_one)
152 {:ok, filter_two} = Filter.update(filter_one, changes)
154 assert filter_one != filter_two
155 assert filter_two.phrase == changes.phrase
156 assert filter_two.context == changes.context