summaryrefslogtreecommitdiff
path: root/test/bookmark_test.exs
blob: 2726fe7cd02f3f29428ef52d2a37a63276d66369 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.BookmarkTest do
  use Pleroma.DataCase
  import Pleroma.Factory
  alias Pleroma.Bookmark
  alias Pleroma.Web.CommonAPI

  describe "create/2" do
    test "with valid params" do
      user = insert(:user)
      {:ok, activity} = CommonAPI.post(user, %{status: "Some cool information"})
      {:ok, bookmark} = Bookmark.create(user.id, activity.id)
      assert bookmark.user_id == user.id
      assert bookmark.activity_id == activity.id
    end

    test "with invalid params" do
      {:error, changeset} = Bookmark.create(nil, "")
      refute changeset.valid?

      assert changeset.errors == [
               user_id: {"can't be blank", [validation: :required]},
               activity_id: {"can't be blank", [validation: :required]}
             ]
    end
  end

  describe "destroy/2" do
    test "with valid params" do
      user = insert(:user)

      {:ok, activity} = CommonAPI.post(user, %{status: "Some cool information"})
      {:ok, _bookmark} = Bookmark.create(user.id, activity.id)

      {:ok, _deleted_bookmark} = Bookmark.destroy(user.id, activity.id)
    end
  end

  describe "get/2" do
    test "gets a bookmark" do
      user = insert(:user)

      {:ok, activity} =
        CommonAPI.post(user, %{
          status:
            "Scientists Discover The Secret Behind Tenshi Eating A Corndog Being So Cute – Science Daily"
        })

      {:ok, bookmark} = Bookmark.create(user.id, activity.id)
      assert bookmark == Bookmark.get(user.id, activity.id)
    end
  end
end