First
[anni] / test / pleroma / web / activity_pub / object_validators / block_validation_test.exs
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
5 defmodule Pleroma.Web.ActivityPub.ObjectValidators.BlockValidationTest do
6   use Pleroma.DataCase, async: true
7
8   alias Pleroma.Web.ActivityPub.Builder
9   alias Pleroma.Web.ActivityPub.ObjectValidator
10
11   import Pleroma.Factory
12
13   describe "blocks" do
14     setup do
15       user = insert(:user, local: false)
16       blocked = insert(:user)
17
18       {:ok, valid_block, []} = Builder.block(user, blocked)
19
20       %{user: user, valid_block: valid_block}
21     end
22
23     test "validates a basic object", %{
24       valid_block: valid_block
25     } do
26       assert {:ok, _block, []} = ObjectValidator.validate(valid_block, [])
27     end
28
29     test "returns an error if we don't know the blocked user", %{
30       valid_block: valid_block
31     } do
32       block =
33         valid_block
34         |> Map.put("object", "https://gensokyo.2hu/users/raymoo")
35
36       assert {:error, _cng} = ObjectValidator.validate(block, [])
37     end
38   end
39 end