Merge branch 'feature/mastodon-api-fixes' into develop
[akkoma] / test / web / mastodon_api / mastodon_api_controller_test.exs
index 1b887cc24e518de6ed197f8f34e993a8665b41a0..b97ca06e84b184776c64aa7dfb6aaf32620bdff9 100644 (file)
@@ -281,6 +281,14 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
     |> post("/api/v1/accounts/#{other_user.id}/unfollow")
 
     assert %{"id" => id, "following" => false} = json_response(conn, 200)
+
+    user = Repo.get(User, user.id)
+    conn = build_conn()
+    |> assign(:user, user)
+    |> post("/api/v1/follows", %{"uri" => other_user.nickname})
+
+    assert %{"id" => id} = json_response(conn, 200)
+    assert id == other_user.id
   end
 
   test "unimplemented block/mute endpoints" do
@@ -310,4 +318,65 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
       assert [] = json_response(conn, 200)
     end)
   end
+
+  test "account search", %{conn: conn} do
+    user = insert(:user)
+    user_two = insert(:user, %{nickname: "shp@shitposter.club"})
+    user_three = insert(:user, %{nickname: "shp@heldscal.la", name: "I love 2hu"})
+
+    conn = conn
+    |> assign(:user, user)
+    |> get("/api/v1/accounts/search", %{"q" => "2hu"})
+
+    assert [account] = json_response(conn, 200)
+    assert account["id"] == user_three.id
+  end
+
+  test "search", %{conn: conn} do
+    user = insert(:user)
+    user_two = insert(:user, %{nickname: "shp@shitposter.club"})
+    user_three = insert(:user, %{nickname: "shp@heldscal.la", name: "I love 2hu"})
+
+    {:ok, activity} = CommonAPI.post(user, %{"status" => "This is about 2hu"})
+    {:ok, _} = CommonAPI.post(user_two, %{"status" => "This isn't"})
+
+    conn = conn
+    |> get("/api/v1/search", %{"q" => "2hu"})
+
+    assert results = json_response(conn, 200)
+
+    [account] = results["accounts"]
+    assert account["id"] == user_three.id
+
+    assert results["hashtags"] == []
+
+    [status] = results["statuses"]
+    assert status["id"] == activity.id
+  end
+
+  test "search fetches remote accounts", %{conn: conn} do
+    conn = conn
+    |> get("/api/v1/search", %{"q" => "shp@social.heldscal.la", "resolve" => "true"})
+
+    assert results = json_response(conn, 200)
+    [account] = results["accounts"]
+    assert account["acct"] == "shp@social.heldscal.la"
+  end
+
+  test "returns the favorites of a user", %{conn: conn} do
+    user = insert(:user)
+    other_user = insert(:user)
+
+    {:ok, _} = CommonAPI.post(other_user, %{"status" => "bla"})
+    {:ok, activity} = CommonAPI.post(other_user, %{"status" => "traps are happy"})
+
+    {:ok, _, _} = CommonAPI.favorite(activity.id, user)
+
+    conn = conn
+    |> assign(:user, user)
+    |> get("/api/v1/favourites")
+
+    assert [status] = json_response(conn, 200)
+    assert status["id"] == activity.id
+  end
 end