Remote Timeline: add Streaming support
[akkoma] / test / web / pleroma_api / controllers / scrobble_controller_test.exs
index 8cbb5889e1e533e6f17db692a735ce7d6de9599a..f39c07ac649ea52986a477c3c728dcd13680a33e 100644 (file)
@@ -1,61 +1,58 @@
 # Pleroma: A lightweight social networking server
-# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.PleromaAPI.ScrobbleControllerTest do
   use Pleroma.Web.ConnCase
 
   alias Pleroma.Web.CommonAPI
-  import Pleroma.Factory
 
-  describe "POST /api/v1/pleroma/now-playing" do
-    test "works correctly", %{conn: conn} do
-      user = insert(:user)
+  describe "POST /api/v1/pleroma/scrobble" do
+    test "works correctly" do
+      %{conn: conn} = oauth_access(["write"])
 
       conn =
         conn
-        |> assign(:user, user)
-        |> post("/api/v1/pleroma/now-playing", %{
+        |> put_req_header("content-type", "application/json")
+        |> post("/api/v1/pleroma/scrobble", %{
           "title" => "lain radio episode 1",
           "artist" => "lain",
           "album" => "lain radio",
           "length" => "180000"
         })
 
-      assert %{"title" => "lain radio episode 1"} = json_response(conn, 200)
+      assert %{"title" => "lain radio episode 1"} = json_response_and_validate_schema(conn, 200)
     end
   end
 
-  describe "GET /api/v1/pleroma/accounts/:id/now-playing" do
-    test "works correctly", %{conn: conn} do
-      user = insert(:user)
+  describe "GET /api/v1/pleroma/accounts/:id/scrobbles" do
+    test "works correctly" do
+      %{user: user, conn: conn} = oauth_access(["read"])
 
       {:ok, _activity} =
         CommonAPI.listen(user, %{
-          "title" => "lain radio episode 1",
-          "artist" => "lain",
-          "album" => "lain radio"
+          title: "lain radio episode 1",
+          artist: "lain",
+          album: "lain radio"
         })
 
       {:ok, _activity} =
         CommonAPI.listen(user, %{
-          "title" => "lain radio episode 2",
-          "artist" => "lain",
-          "album" => "lain radio"
+          title: "lain radio episode 2",
+          artist: "lain",
+          album: "lain radio"
         })
 
       {:ok, _activity} =
         CommonAPI.listen(user, %{
-          "title" => "lain radio episode 3",
-          "artist" => "lain",
-          "album" => "lain radio"
+          title: "lain radio episode 3",
+          artist: "lain",
+          album: "lain radio"
         })
 
-      conn =
-        conn
-        |> get("/api/v1/pleroma/accounts/#{user.id}/now-playing")
+      conn = get(conn, "/api/v1/pleroma/accounts/#{user.id}/scrobbles")
 
-      result = json_response(conn, 200)
+      result = json_response_and_validate_schema(conn, 200)
 
       assert length(result) == 3
     end