Pleroma API: Add endpoint to get conversation statuses.
[akkoma] / test / web / pleroma_api / pleroma_api_controller_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do
6 use Pleroma.Web.ConnCase
7
8 alias Pleroma.Conversation.Participation
9 alias Pleroma.Web.CommonAPI
10
11 import Pleroma.Factory
12
13 test "/api/v1/pleroma/conversations/:id/statuses", %{conn: conn} do
14 user = insert(:user)
15 other_user = insert(:user)
16 third_user = insert(:user)
17
18 {:ok, _activity} =
19 CommonAPI.post(user, %{"status" => "Hi @#{third_user.nickname}!", "visibility" => "direct"})
20
21 {:ok, activity} =
22 CommonAPI.post(user, %{"status" => "Hi @#{other_user.nickname}!", "visibility" => "direct"})
23
24 [participation] = Participation.for_user(other_user)
25
26 {:ok, activity_two} =
27 CommonAPI.post(other_user, %{
28 "status" => "Hi!",
29 "in_reply_to_status_id" => activity.id,
30 "in_reply_to_conversation_id" => participation.id
31 })
32
33 result =
34 conn
35 |> assign(:user, other_user)
36 |> get("/api/v1/pleroma/conversations/#{participation.id}/statuses")
37 |> json_response(200)
38
39 assert length(result) == 2
40
41 id_one = activity.id
42 id_two = activity_two.id
43 assert [%{"id" => ^id_one}, %{"id" => ^id_two}] = result
44 end
45 end