mix tasks consistency
[akkoma] / test / web / pleroma_api / controllers / scrobble_controller_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.PleromaAPI.ScrobbleControllerTest do
6 use Pleroma.Web.ConnCase
7
8 alias Pleroma.Web.CommonAPI
9
10 describe "POST /api/v1/pleroma/scrobble" do
11 test "works correctly" do
12 %{conn: conn} = oauth_access(["write"])
13
14 conn =
15 conn
16 |> put_req_header("content-type", "application/json")
17 |> post("/api/v1/pleroma/scrobble", %{
18 "title" => "lain radio episode 1",
19 "artist" => "lain",
20 "album" => "lain radio",
21 "length" => "180000"
22 })
23
24 assert %{"title" => "lain radio episode 1"} = json_response_and_validate_schema(conn, 200)
25 end
26 end
27
28 describe "GET /api/v1/pleroma/accounts/:id/scrobbles" do
29 test "works correctly" do
30 %{user: user, conn: conn} = oauth_access(["read"])
31
32 {:ok, _activity} =
33 CommonAPI.listen(user, %{
34 title: "lain radio episode 1",
35 artist: "lain",
36 album: "lain radio"
37 })
38
39 {:ok, _activity} =
40 CommonAPI.listen(user, %{
41 title: "lain radio episode 2",
42 artist: "lain",
43 album: "lain radio"
44 })
45
46 {:ok, _activity} =
47 CommonAPI.listen(user, %{
48 title: "lain radio episode 3",
49 artist: "lain",
50 album: "lain radio"
51 })
52
53 conn = get(conn, "/api/v1/pleroma/accounts/#{user.id}/scrobbles")
54
55 result = json_response_and_validate_schema(conn, 200)
56
57 assert length(result) == 3
58 end
59 end
60 end