diff options
author | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2020-06-26 17:41:00 +0000 |
---|---|---|
committer | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2020-06-26 17:41:00 +0000 |
commit | bf1c5e255ae0ab297aac3094d6a899c24c29fd2f (patch) | |
tree | b61c301b4daa6bcb9633dedf09f687d69cf6edf1 /test/web/common_api/common_api_test.exs | |
parent | 09478c9cf713eefdfdf585f0196efdf00b9c0baf (diff) | |
parent | 15a8b703185c685fc3d25a381fcb9dee522c78bf (diff) | |
download | pleroma-bf1c5e255ae0ab297aac3094d6a899c24c29fd2f.tar.gz pleroma-bf1c5e255ae0ab297aac3094d6a899c24c29fd2f.zip |
Merge branch 'block-handling' into 'develop'
Handle blocks with the pipeline
See merge request pleroma/pleroma!2685
Diffstat (limited to 'test/web/common_api/common_api_test.exs')
-rw-r--r-- | test/web/common_api/common_api_test.exs | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index 6bd26050e..fc3bb845d 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -25,6 +25,52 @@ defmodule Pleroma.Web.CommonAPITest do setup do: clear_config([:instance, :limit]) setup do: clear_config([:instance, :max_pinned_statuses]) + describe "blocking" do + setup do + blocker = insert(:user) + blocked = insert(:user) + User.follow(blocker, blocked) + User.follow(blocked, blocker) + %{blocker: blocker, blocked: blocked} + end + + test "it blocks and federates", %{blocker: blocker, blocked: blocked} do + clear_config([:instance, :federating], true) + + with_mock Pleroma.Web.Federator, + publish: fn _ -> nil end do + assert {:ok, block} = CommonAPI.block(blocker, blocked) + + assert block.local + assert User.blocks?(blocker, blocked) + refute User.following?(blocker, blocked) + refute User.following?(blocked, blocker) + + assert called(Pleroma.Web.Federator.publish(block)) + end + end + + test "it blocks and does not federate if outgoing blocks are disabled", %{ + blocker: blocker, + blocked: blocked + } do + clear_config([:instance, :federating], true) + clear_config([:activitypub, :outgoing_blocks], false) + + with_mock Pleroma.Web.Federator, + publish: fn _ -> nil end do + assert {:ok, block} = CommonAPI.block(blocker, blocked) + + assert block.local + assert User.blocks?(blocker, blocked) + refute User.following?(blocker, blocked) + refute User.following?(blocked, blocker) + + refute called(Pleroma.Web.Federator.publish(block)) + end + end + end + describe "posting chat messages" do setup do: clear_config([:instance, :chat_limit]) |