diff options
| author | lain <lain@soykaf.club> | 2019-08-19 17:00:59 +0000 | 
|---|---|---|
| committer | lain <lain@soykaf.club> | 2019-08-19 17:00:59 +0000 | 
| commit | d2c9befc64d4b8d4f56b5e23afeb1b720767e7ff (patch) | |
| tree | cd76bb5d4cf7716624378a9cbf9cd42a63eee735 /test/web/pleroma_api | |
| parent | cb222b72b39ae4dc887657d1eae03d0360cbd429 (diff) | |
| parent | e5d2c0c66949ad90f9ee02874bdea2aa94f7f683 (diff) | |
| download | pleroma-d2c9befc64d4b8d4f56b5e23afeb1b720767e7ff.tar.gz pleroma-d2c9befc64d4b8d4f56b5e23afeb1b720767e7ff.zip | |
Merge branch 'develop' into 'fix/reverse-proxy-body-too-large'
# Conflicts:
#   CHANGELOG.md
Diffstat (limited to 'test/web/pleroma_api')
| -rw-r--r-- | test/web/pleroma_api/pleroma_api_controller_test.exs | 94 | 
1 files changed, 94 insertions, 0 deletions
| diff --git a/test/web/pleroma_api/pleroma_api_controller_test.exs b/test/web/pleroma_api/pleroma_api_controller_test.exs new file mode 100644 index 000000000..ed6b79727 --- /dev/null +++ b/test/web/pleroma_api/pleroma_api_controller_test.exs @@ -0,0 +1,94 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do +  use Pleroma.Web.ConnCase + +  alias Pleroma.Conversation.Participation +  alias Pleroma.Repo +  alias Pleroma.Web.CommonAPI + +  import Pleroma.Factory + +  test "/api/v1/pleroma/conversations/:id", %{conn: conn} do +    user = insert(:user) +    other_user = insert(:user) + +    {:ok, _activity} = +      CommonAPI.post(user, %{"status" => "Hi @#{other_user.nickname}!", "visibility" => "direct"}) + +    [participation] = Participation.for_user(other_user) + +    result = +      conn +      |> assign(:user, other_user) +      |> get("/api/v1/pleroma/conversations/#{participation.id}") +      |> json_response(200) + +    assert result["id"] == participation.id |> to_string() +  end + +  test "/api/v1/pleroma/conversations/:id/statuses", %{conn: conn} do +    user = insert(:user) +    other_user = insert(:user) +    third_user = insert(:user) + +    {:ok, _activity} = +      CommonAPI.post(user, %{"status" => "Hi @#{third_user.nickname}!", "visibility" => "direct"}) + +    {:ok, activity} = +      CommonAPI.post(user, %{"status" => "Hi @#{other_user.nickname}!", "visibility" => "direct"}) + +    [participation] = Participation.for_user(other_user) + +    {:ok, activity_two} = +      CommonAPI.post(other_user, %{ +        "status" => "Hi!", +        "in_reply_to_status_id" => activity.id, +        "in_reply_to_conversation_id" => participation.id +      }) + +    result = +      conn +      |> assign(:user, other_user) +      |> get("/api/v1/pleroma/conversations/#{participation.id}/statuses") +      |> json_response(200) + +    assert length(result) == 2 + +    id_one = activity.id +    id_two = activity_two.id +    assert [%{"id" => ^id_one}, %{"id" => ^id_two}] = result +  end + +  test "PATCH /api/v1/pleroma/conversations/:id", %{conn: conn} do +    user = insert(:user) +    other_user = insert(:user) + +    {:ok, _activity} = CommonAPI.post(user, %{"status" => "Hi", "visibility" => "direct"}) + +    [participation] = Participation.for_user(user) + +    participation = Repo.preload(participation, :recipients) + +    assert [user] == participation.recipients +    assert other_user not in participation.recipients + +    result = +      conn +      |> assign(:user, user) +      |> patch("/api/v1/pleroma/conversations/#{participation.id}", %{ +        "recipients" => [user.id, other_user.id] +      }) +      |> json_response(200) + +    assert result["id"] == participation.id |> to_string + +    [participation] = Participation.for_user(user) +    participation = Repo.preload(participation, :recipients) + +    assert user in participation.recipients +    assert other_user in participation.recipients +  end +end | 
