1 defmodule Pleroma.FilterTest do
2 alias Pleroma.{User, Repo}
8 describe "creating filters" do
9 test "creating one filter" do
12 query = %Pleroma.Filter{
19 {:ok, %Pleroma.Filter{} = filter} = Pleroma.Filter.create(query)
20 result = Pleroma.Filter.get(filter.filter_id, user)
21 assert query.phrase == result.phrase
24 test "creating one filter without a pre-defined filter_id" do
27 query = %Pleroma.Filter{
33 {:ok, %Pleroma.Filter{} = filter} = Pleroma.Filter.create(query)
35 assert filter.filter_id == 1
38 test "creating additional filters uses previous highest filter_id + 1" do
41 query_one = %Pleroma.Filter{
48 {:ok, %Pleroma.Filter{} = filter_one} = Pleroma.Filter.create(query_one)
50 query_two = %Pleroma.Filter{
57 {:ok, %Pleroma.Filter{} = filter_two} = Pleroma.Filter.create(query_two)
58 assert filter_two.filter_id == filter_one.filter_id + 1
61 test "filter_id is unique per user" do
62 user_one = insert(:user)
63 user_two = insert(:user)
65 query_one = %Pleroma.Filter{
71 {:ok, %Pleroma.Filter{} = filter_one} = Pleroma.Filter.create(query_one)
73 query_two = %Pleroma.Filter{
79 {:ok, %Pleroma.Filter{} = filter_two} = Pleroma.Filter.create(query_two)
81 assert filter_one.filter_id == 1
82 assert filter_two.filter_id == 1
84 result_one = Pleroma.Filter.get(filter_one.filter_id, user_one)
85 assert result_one.phrase == filter_one.phrase
87 result_two = Pleroma.Filter.get(filter_two.filter_id, user_two)
88 assert result_two.phrase == filter_two.phrase
92 test "deleting a filter" do
95 query = %Pleroma.Filter{
102 {:ok, filter} = Pleroma.Filter.create(query)
103 {:ok, filter} = Pleroma.Filter.delete(query)
104 assert is_nil(Repo.get(Pleroma.Filter, filter.filter_id))
107 test "getting all filters by an user" do
110 query_one = %Pleroma.Filter{
117 query_two = %Pleroma.Filter{
124 {:ok, filter_one} = Pleroma.Filter.create(query_one)
125 {:ok, filter_two} = Pleroma.Filter.create(query_two)
126 filters = Pleroma.Filter.get_filters(user)
127 assert filter_one in filters
128 assert filter_two in filters
131 test "updating a filter" do
134 query_one = %Pleroma.Filter{
141 query_two = %Pleroma.Filter{
145 context: ["home", "timeline"]
148 {:ok, filter_one} = Pleroma.Filter.create(query_one)
149 {:ok, filter_two} = Pleroma.Filter.update(query_two)
150 assert filter_one != filter_two
151 assert filter_two.phrase == query_two.phrase
152 assert filter_two.context == query_two.context