1 defmodule Pleroma.FilterTest do
7 describe "creating filters" do
8 test "creating one filter" do
11 query = %Pleroma.Filter{
18 {:ok, %Pleroma.Filter{} = filter} = Pleroma.Filter.create(query)
19 result = Pleroma.Filter.get(filter.filter_id, user)
20 assert query.phrase == result.phrase
23 test "creating one filter without a pre-defined filter_id" do
26 query = %Pleroma.Filter{
32 {:ok, %Pleroma.Filter{} = filter} = Pleroma.Filter.create(query)
34 assert filter.filter_id == 1
37 test "creating additional filters uses previous highest filter_id + 1" do
40 query_one = %Pleroma.Filter{
47 {:ok, %Pleroma.Filter{} = filter_one} = Pleroma.Filter.create(query_one)
49 query_two = %Pleroma.Filter{
56 {:ok, %Pleroma.Filter{} = filter_two} = Pleroma.Filter.create(query_two)
57 assert filter_two.filter_id == filter_one.filter_id + 1
60 test "filter_id is unique per user" do
61 user_one = insert(:user)
62 user_two = insert(:user)
64 query_one = %Pleroma.Filter{
70 {:ok, %Pleroma.Filter{} = filter_one} = Pleroma.Filter.create(query_one)
72 query_two = %Pleroma.Filter{
78 {:ok, %Pleroma.Filter{} = filter_two} = Pleroma.Filter.create(query_two)
80 assert filter_one.filter_id == 1
81 assert filter_two.filter_id == 1
83 result_one = Pleroma.Filter.get(filter_one.filter_id, user_one)
84 assert result_one.phrase == filter_one.phrase
86 result_two = Pleroma.Filter.get(filter_two.filter_id, user_two)
87 assert result_two.phrase == filter_two.phrase
91 test "deleting a filter" do
94 query = %Pleroma.Filter{
101 {:ok, _filter} = Pleroma.Filter.create(query)
102 {:ok, filter} = Pleroma.Filter.delete(query)
103 assert is_nil(Repo.get(Pleroma.Filter, filter.filter_id))
106 test "getting all filters by an user" do
109 query_one = %Pleroma.Filter{
116 query_two = %Pleroma.Filter{
123 {:ok, filter_one} = Pleroma.Filter.create(query_one)
124 {:ok, filter_two} = Pleroma.Filter.create(query_two)
125 filters = Pleroma.Filter.get_filters(user)
126 assert filter_one in filters
127 assert filter_two in filters
130 test "updating a filter" do
133 query_one = %Pleroma.Filter{
140 query_two = %Pleroma.Filter{
144 context: ["home", "timeline"]
147 {:ok, filter_one} = Pleroma.Filter.create(query_one)
148 {:ok, filter_two} = Pleroma.Filter.update(query_two)
149 assert filter_one != filter_two
150 assert filter_two.phrase == query_two.phrase
151 assert filter_two.context == query_two.context