logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://anongit.hacktivis.me/git/pleroma.git/

user_relationship_test.exs (5024B)


  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Pleroma.UserRelationshipTest do
  5. alias Pleroma.DateTimeMock
  6. alias Pleroma.UserRelationship
  7. use Pleroma.DataCase, async: true
  8. import Mox
  9. import Pleroma.Factory
  10. describe "*_exists?/2" do
  11. setup do
  12. {:ok, users: insert_list(2, :user)}
  13. end
  14. test "returns false if record doesn't exist", %{users: [user1, user2]} do
  15. refute UserRelationship.block_exists?(user1, user2)
  16. refute UserRelationship.mute_exists?(user1, user2)
  17. refute UserRelationship.notification_mute_exists?(user1, user2)
  18. refute UserRelationship.reblog_mute_exists?(user1, user2)
  19. refute UserRelationship.inverse_subscription_exists?(user1, user2)
  20. end
  21. test "returns true if record exists", %{users: [user1, user2]} do
  22. for relationship_type <- [
  23. :block,
  24. :mute,
  25. :notification_mute,
  26. :reblog_mute,
  27. :inverse_subscription
  28. ] do
  29. insert(:user_relationship,
  30. source: user1,
  31. target: user2,
  32. relationship_type: relationship_type
  33. )
  34. end
  35. assert UserRelationship.block_exists?(user1, user2)
  36. assert UserRelationship.mute_exists?(user1, user2)
  37. assert UserRelationship.notification_mute_exists?(user1, user2)
  38. assert UserRelationship.reblog_mute_exists?(user1, user2)
  39. assert UserRelationship.inverse_subscription_exists?(user1, user2)
  40. end
  41. end
  42. describe "create_*/2" do
  43. setup do
  44. {:ok, users: insert_list(2, :user)}
  45. end
  46. test "creates user relationship record if it doesn't exist", %{users: [user1, user2]} do
  47. DateTimeMock
  48. |> stub_with(Pleroma.DateTime.Impl)
  49. for relationship_type <- [
  50. :block,
  51. :mute,
  52. :notification_mute,
  53. :reblog_mute,
  54. :inverse_subscription
  55. ] do
  56. insert(:user_relationship,
  57. source: user1,
  58. target: user2,
  59. relationship_type: relationship_type
  60. )
  61. end
  62. UserRelationship.create_block(user1, user2)
  63. UserRelationship.create_mute(user1, user2)
  64. UserRelationship.create_notification_mute(user1, user2)
  65. UserRelationship.create_reblog_mute(user1, user2)
  66. UserRelationship.create_inverse_subscription(user1, user2)
  67. assert UserRelationship.block_exists?(user1, user2)
  68. assert UserRelationship.mute_exists?(user1, user2)
  69. assert UserRelationship.notification_mute_exists?(user1, user2)
  70. assert UserRelationship.reblog_mute_exists?(user1, user2)
  71. assert UserRelationship.inverse_subscription_exists?(user1, user2)
  72. end
  73. test "if record already exists, returns it", %{users: [user1, user2]} do
  74. fixed_datetime = ~N[2017-03-17 17:09:58]
  75. Pleroma.DateTimeMock
  76. |> expect(:utc_now, 2, fn -> fixed_datetime end)
  77. {:ok, %{inserted_at: ^fixed_datetime}} = UserRelationship.create_block(user1, user2)
  78. # Test the idempotency without caring about the exact time
  79. assert {:ok, _} = UserRelationship.create_block(user1, user2)
  80. end
  81. end
  82. describe "delete_*/2" do
  83. setup do
  84. {:ok, users: insert_list(2, :user)}
  85. end
  86. test "deletes user relationship record if it exists", %{users: [user1, user2]} do
  87. for relationship_type <- [
  88. :block,
  89. :mute,
  90. :notification_mute,
  91. :reblog_mute,
  92. :inverse_subscription
  93. ] do
  94. insert(:user_relationship,
  95. source: user1,
  96. target: user2,
  97. relationship_type: relationship_type
  98. )
  99. end
  100. assert {:ok, %UserRelationship{}} = UserRelationship.delete_block(user1, user2)
  101. assert {:ok, %UserRelationship{}} = UserRelationship.delete_mute(user1, user2)
  102. assert {:ok, %UserRelationship{}} = UserRelationship.delete_notification_mute(user1, user2)
  103. assert {:ok, %UserRelationship{}} = UserRelationship.delete_reblog_mute(user1, user2)
  104. assert {:ok, %UserRelationship{}} =
  105. UserRelationship.delete_inverse_subscription(user1, user2)
  106. refute UserRelationship.block_exists?(user1, user2)
  107. refute UserRelationship.mute_exists?(user1, user2)
  108. refute UserRelationship.notification_mute_exists?(user1, user2)
  109. refute UserRelationship.reblog_mute_exists?(user1, user2)
  110. refute UserRelationship.inverse_subscription_exists?(user1, user2)
  111. end
  112. test "if record does not exist, returns {:ok, nil}", %{users: [user1, user2]} do
  113. assert {:ok, nil} = UserRelationship.delete_block(user1, user2)
  114. assert {:ok, nil} = UserRelationship.delete_mute(user1, user2)
  115. assert {:ok, nil} = UserRelationship.delete_notification_mute(user1, user2)
  116. assert {:ok, nil} = UserRelationship.delete_reblog_mute(user1, user2)
  117. assert {:ok, nil} = UserRelationship.delete_inverse_subscription(user1, user2)
  118. end
  119. end
  120. end