Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop
[akkoma] / test / web / pleroma_api / controllers / scrobble_controller_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2019 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 post(conn, "/api/v1/pleroma/scrobble", %{
16 "title" => "lain radio episode 1",
17 "artist" => "lain",
18 "album" => "lain radio",
19 "length" => "180000"
20 })
21
22 assert %{"title" => "lain radio episode 1"} = json_response(conn, 200)
23 end
24 end
25
26 describe "GET /api/v1/pleroma/accounts/:id/scrobbles" do
27 test "works correctly" do
28 %{user: user, conn: conn} = oauth_access(["read"])
29
30 {:ok, _activity} =
31 CommonAPI.listen(user, %{
32 "title" => "lain radio episode 1",
33 "artist" => "lain",
34 "album" => "lain radio"
35 })
36
37 {:ok, _activity} =
38 CommonAPI.listen(user, %{
39 "title" => "lain radio episode 2",
40 "artist" => "lain",
41 "album" => "lain radio"
42 })
43
44 {:ok, _activity} =
45 CommonAPI.listen(user, %{
46 "title" => "lain radio episode 3",
47 "artist" => "lain",
48 "album" => "lain radio"
49 })
50
51 conn = get(conn, "/api/v1/pleroma/accounts/#{user.id}/scrobbles")
52
53 result = json_response(conn, 200)
54
55 assert length(result) == 3
56 end
57 end
58 end