85 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
| defmodule Pleroma.FilterTest do
 | |
|   alias Pleroma.{User, Repo}
 | |
|   use Pleroma.DataCase
 | |
| 
 | |
|   import Pleroma.Factory
 | |
|   import Ecto.Query
 | |
| 
 | |
|   test "creating a filter" do
 | |
|     user = insert(:user)
 | |
| 
 | |
|     query = %Pleroma.Filter{
 | |
|       user_id: user.id,
 | |
|       filter_id: 42,
 | |
|       phrase: "knights",
 | |
|       context: ["home"]
 | |
|     }
 | |
| 
 | |
|     {:ok, %Pleroma.Filter{} = filter} = Pleroma.Filter.create(query)
 | |
|     result = Pleroma.Filter.get(filter.filter_id, user)
 | |
|     assert query.phrase == result.phrase
 | |
|   end
 | |
| 
 | |
|   test "deleting a filter" do
 | |
|     user = insert(:user)
 | |
| 
 | |
|     query = %Pleroma.Filter{
 | |
|       user_id: user.id,
 | |
|       filter_id: 0,
 | |
|       phrase: "knights",
 | |
|       context: ["home"]
 | |
|     }
 | |
| 
 | |
|     {:ok, filter} = Pleroma.Filter.create(query)
 | |
|     {:ok, filter} = Pleroma.Filter.delete(query)
 | |
|     assert is_nil(Repo.get(Pleroma.Filter, filter.filter_id))
 | |
|   end
 | |
| 
 | |
|   test "getting all filters by an user" do
 | |
|     user = insert(:user)
 | |
| 
 | |
|     query_one = %Pleroma.Filter{
 | |
|       user_id: user.id,
 | |
|       filter_id: 1,
 | |
|       phrase: "knights",
 | |
|       context: ["home"]
 | |
|     }
 | |
| 
 | |
|     query_two = %Pleroma.Filter{
 | |
|       user_id: user.id,
 | |
|       filter_id: 2,
 | |
|       phrase: "who",
 | |
|       context: ["home"]
 | |
|     }
 | |
| 
 | |
|     {:ok, filter_one} = Pleroma.Filter.create(query_one)
 | |
|     {:ok, filter_two} = Pleroma.Filter.create(query_two)
 | |
|     filters = Pleroma.Filter.get_filters(user)
 | |
|     assert filter_one in filters
 | |
|     assert filter_two in filters
 | |
|   end
 | |
| 
 | |
|   test "updating a filter" do
 | |
|     user = insert(:user)
 | |
| 
 | |
|     query_one = %Pleroma.Filter{
 | |
|       user_id: user.id,
 | |
|       filter_id: 1,
 | |
|       phrase: "knights",
 | |
|       context: ["home"]
 | |
|     }
 | |
| 
 | |
|     query_two = %Pleroma.Filter{
 | |
|       user_id: user.id,
 | |
|       filter_id: 1,
 | |
|       phrase: "who",
 | |
|       context: ["home", "timeline"]
 | |
|     }
 | |
| 
 | |
|     {:ok, filter_one} = Pleroma.Filter.create(query_one)
 | |
|     {:ok, filter_two} = Pleroma.Filter.update(query_two)
 | |
|     assert filter_one != filter_two
 | |
|     assert filter_two.phrase == query_two.phrase
 | |
|     assert filter_two.context == query_two.context
 | |
|   end
 | |
| end
 | 
