Merge branch 'feature/1734-user-deletion' into 'develop'
[akkoma] / test / support / conn_case.ex
index 8099461cc3cdb6dc7f5096da614707fcc3b5a922..b23918dd1d981d6596dd255fd55d3584139615d2 100644 (file)
@@ -56,7 +56,14 @@ defmodule Pleroma.Web.ConnCase do
         [conn: conn]
       end
 
-      defp json_response_and_validate_schema(conn, status \\ nil) do
+      defp json_response_and_validate_schema(
+             %{
+               private: %{
+                 open_api_spex: %{operation_id: op_id, operation_lookup: lookup, spec: spec}
+               }
+             } = conn,
+             status
+           ) do
         content_type =
           conn
           |> Plug.Conn.get_resp_header("content-type")
@@ -64,10 +71,12 @@ defmodule Pleroma.Web.ConnCase do
           |> String.split(";")
           |> List.first()
 
-        status = status || conn.status
+        status = Plug.Conn.Status.code(status)
 
-        %{private: %{open_api_spex: %{operation_id: op_id, operation_lookup: lookup, spec: spec}}} =
-          conn
+        unless lookup[op_id].responses[status] do
+          err = "Response schema not found for #{status} #{conn.method} #{conn.request_path}"
+          flunk(err)
+        end
 
         schema = lookup[op_id].responses[status].content[content_type].schema
         json = json_response(conn, status)
@@ -92,6 +101,10 @@ defmodule Pleroma.Web.ConnCase do
         end
       end
 
+      defp json_response_and_validate_schema(conn, _status) do
+        flunk("Response schema not found for #{conn.method} #{conn.request_path} #{conn.status}")
+      end
+
       defp ensure_federating_or_authenticated(conn, url, user) do
         initial_setting = Config.get([:instance, :federating])
         on_exit(fn -> Config.put([:instance, :federating], initial_setting) end)
@@ -126,7 +139,11 @@ defmodule Pleroma.Web.ConnCase do
     end
 
     if tags[:needs_streamer] do
-      start_supervised(Pleroma.Web.Streamer.supervisor())
+      start_supervised(%{
+        id: Pleroma.Web.Streamer.registry(),
+        start:
+          {Registry, :start_link, [[keys: :duplicate, name: Pleroma.Web.Streamer.registry()]]}
+      })
     end
 
     {:ok, conn: Phoenix.ConnTest.build_conn()}