Fork of Pleroma with site-specific changes and feature branches https://git.pleroma.social/pleroma/pleroma
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.0KB

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