tests: fix a lot of the remaining test failures
[akkoma] / test / web / ostatus / ostatus_controller_test.exs
index c23b175e885bfd2d15e3f5ec3a97db3d0324cb51..e81adde685f78020efc1bacf5086c8f1f965dec0 100644 (file)
@@ -2,6 +2,7 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
   use Pleroma.Web.ConnCase
   import Pleroma.Factory
   alias Pleroma.{User, Repo}
+  alias Pleroma.Web.CommonAPI
   alias Pleroma.Web.OStatus.ActivityRepresenter
 
   test "decodes a salmon", %{conn: conn} do
@@ -30,14 +31,16 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
     # Set a wrong magic-key for a user so it has to refetch
     salmon_user = User.get_by_ap_id("http://gs.example.org:4040/index.php/user/1")
     # Wrong key
-    info =
-      salmon_user.info
-      |> Map.put(
-        "magic_key",
-        "RSA.pu0s-halox4tu7wmES1FVSx6u-4wc0YrUFXcqWXZG4-27UmbCOpMQftRCldNRfyA-qLbz-eqiwrong1EwUvjsD4cYbAHNGHwTvDOyx5AKthQUP44ykPv7kjKGh3DWKySJvcs9tlUG87hlo7AvnMo9pwRS_Zz2CacQ-MKaXyDepk=.AQAB"
-      )
+    info_cng =
+      User.Info.remote_user_creation(salmon_user.info, %{
+        magic_key:
+          "RSA.pu0s-halox4tu7wmES1FVSx6u-4wc0YrUFXcqWXZG4-27UmbCOpMQftRCldNRfyA-qLbz-eqiwrong1EwUvjsD4cYbAHNGHwTvDOyx5AKthQUP44ykPv7kjKGh3DWKySJvcs9tlUG87hlo7AvnMo9pwRS_Zz2CacQ-MKaXyDepk=.AQAB"
+      })
 
-    Repo.update(User.info_changeset(salmon_user, %{info: info}))
+    cng =
+      Ecto.Changeset.change(salmon_user)
+      |> Ecto.Changeset.put_embed(:info, info_cng)
+      |> Repo.update()
 
     conn =
       build_conn()
@@ -167,6 +170,32 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
     assert json_response(conn, 200)
   end
 
+  test "only gets a notice in AS2 format for Create messages", %{conn: conn} do
+    note_activity = insert(:note_activity)
+    url = "/notice/#{note_activity.id}"
+
+    conn =
+      conn
+      |> put_req_header("accept", "application/activity+json")
+      |> get(url)
+
+    assert json_response(conn, 200)
+
+    user = insert(:user)
+
+    {:ok, like_activity, _} = CommonAPI.favorite(note_activity.id, user)
+    url = "/notice/#{like_activity.id}"
+
+    assert like_activity.data["type"] == "Like"
+
+    conn =
+      build_conn()
+      |> put_req_header("accept", "application/activity+json")
+      |> get(url)
+
+    assert response(conn, 404)
+  end
+
   test "gets an activity in AS2 format", %{conn: conn} do
     note_activity = insert(:note_activity)
     [_, uuid] = hd(Regex.scan(~r/.+\/([\w-]+)$/, note_activity.data["id"]))