diff options
| author | lain <lain@soykaf.club> | 2018-05-26 16:00:59 +0200 | 
|---|---|---|
| committer | lain <lain@soykaf.club> | 2018-05-26 16:00:59 +0200 | 
| commit | 4b3ec5351466f8615b32e62cc4e6215f8a80b105 (patch) | |
| tree | e46842eac5d8255858a113f71bdf42bfd75e4436 /test/web/mastodon_api | |
| parent | 4fd9df100f61dfe4731934eca86500472d866f60 (diff) | |
| parent | 6138b297836f459e4fe5d21dfed30ddd9397b6d4 (diff) | |
| download | pleroma-4b3ec5351466f8615b32e62cc4e6215f8a80b105.tar.gz pleroma-4b3ec5351466f8615b32e62cc4e6215f8a80b105.zip | |
Merge branch 'develop' into csaurus/pleroma-feature/mstdn-direct-api
Diffstat (limited to 'test/web/mastodon_api')
| -rw-r--r-- | test/web/mastodon_api/list_view_test.exs | 19 | ||||
| -rw-r--r-- | test/web/mastodon_api/mastodon_api_controller_test.exs | 119 | 
2 files changed, 138 insertions, 0 deletions
| diff --git a/test/web/mastodon_api/list_view_test.exs b/test/web/mastodon_api/list_view_test.exs new file mode 100644 index 000000000..5e36872ed --- /dev/null +++ b/test/web/mastodon_api/list_view_test.exs @@ -0,0 +1,19 @@ +defmodule Pleroma.Web.MastodonAPI.ListViewTest do +  use Pleroma.DataCase +  import Pleroma.Factory +  alias Pleroma.Web.MastodonAPI.ListView +  alias Pleroma.List + +  test "Represent a list" do +    user = insert(:user) +    title = "mortal enemies" +    {:ok, list} = Pleroma.List.create(title, user) + +    expected = %{ +      id: to_string(list.id), +      title: title +    } + +    assert expected == ListView.render("list.json", %{list: list}) +  end +end diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs index 72f948230..553581be4 100644 --- a/test/web/mastodon_api/mastodon_api_controller_test.exs +++ b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -229,6 +229,125 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      end    end +  describe "lists" do +    test "creating a list", %{conn: conn} do +      user = insert(:user) + +      conn = +        conn +        |> assign(:user, user) +        |> post("/api/v1/lists", %{"title" => "cuties"}) + +      assert %{"title" => title} = json_response(conn, 200) +      assert title == "cuties" +    end + +    test "adding users to a list", %{conn: conn} do +      user = insert(:user) +      other_user = insert(:user) +      {:ok, list} = Pleroma.List.create("name", user) + +      conn = +        conn +        |> assign(:user, user) +        |> post("/api/v1/lists/#{list.id}/accounts", %{"account_ids" => [other_user.id]}) + +      assert %{} == json_response(conn, 200) +      %Pleroma.List{following: following} = Pleroma.List.get(list.id, user) +      assert following == [other_user.follower_address] +    end + +    test "removing users from a list", %{conn: conn} do +      user = insert(:user) +      other_user = insert(:user) +      third_user = insert(:user) +      {:ok, list} = Pleroma.List.create("name", user) +      {:ok, list} = Pleroma.List.follow(list, other_user) +      {:ok, list} = Pleroma.List.follow(list, third_user) + +      conn = +        conn +        |> assign(:user, user) +        |> delete("/api/v1/lists/#{list.id}/accounts", %{"account_ids" => [other_user.id]}) + +      assert %{} == json_response(conn, 200) +      %Pleroma.List{following: following} = Pleroma.List.get(list.id, user) +      assert following == [third_user.follower_address] +    end + +    test "listing users in a list", %{conn: conn} do +      user = insert(:user) +      other_user = insert(:user) +      {:ok, list} = Pleroma.List.create("name", user) +      {:ok, list} = Pleroma.List.follow(list, other_user) + +      conn = +        conn +        |> assign(:user, user) +        |> get("/api/v1/lists/#{list.id}/accounts", %{"account_ids" => [other_user.id]}) + +      assert [%{"id" => id}] = json_response(conn, 200) +      assert id == to_string(other_user.id) +    end + +    test "retrieving a list", %{conn: conn} do +      user = insert(:user) +      {:ok, list} = Pleroma.List.create("name", user) + +      conn = +        conn +        |> assign(:user, user) +        |> get("/api/v1/lists/#{list.id}") + +      assert %{"id" => id} = json_response(conn, 200) +      assert id == to_string(list.id) +    end + +    test "renaming a list", %{conn: conn} do +      user = insert(:user) +      {:ok, list} = Pleroma.List.create("name", user) + +      conn = +        conn +        |> assign(:user, user) +        |> put("/api/v1/lists/#{list.id}", %{"title" => "newname"}) + +      assert %{"title" => name} = json_response(conn, 200) +      assert name == "newname" +    end + +    test "deleting a list", %{conn: conn} do +      user = insert(:user) +      {:ok, list} = Pleroma.List.create("name", user) + +      conn = +        conn +        |> assign(:user, user) +        |> delete("/api/v1/lists/#{list.id}") + +      assert %{} = json_response(conn, 200) +      assert is_nil(Repo.get(Pleroma.List, list.id)) +    end + +    test "list timeline", %{conn: conn} do +      user = insert(:user) +      other_user = insert(:user) +      {:ok, _activity_one} = TwitterAPI.create_status(user, %{"status" => "Marisa is cute."}) +      {:ok, activity_two} = TwitterAPI.create_status(other_user, %{"status" => "Marisa is cute."}) +      {:ok, list} = Pleroma.List.create("name", user) +      {:ok, list} = Pleroma.List.follow(list, other_user) + +      conn = +        conn +        |> assign(:user, user) +        |> get("/api/v1/timelines/list/#{list.id}") + +      assert [%{"id" => id}] = json_response(conn, 200) + +      assert id == to_string(activity_two.id) +    end +  end +    describe "notifications" do      test "list of notifications", %{conn: conn} do        user = insert(:user) | 
