Update differences_in_mastoapi_responses.md
[akkoma] / test / web / auth / oauth_test_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.Tests.OAuthTestControllerTest do
6 use Pleroma.Web.ConnCase
7
8 import Pleroma.Factory
9
10 setup %{conn: conn} do
11 user = insert(:user)
12 conn = assign(conn, :user, user)
13 %{conn: conn, user: user}
14 end
15
16 test "missed_oauth", %{conn: conn} do
17 res =
18 conn
19 |> get("/test/authenticated_api/missed_oauth")
20 |> json_response(403)
21
22 assert res ==
23 %{
24 "error" =>
25 "Security violation: OAuth scopes check was neither handled nor explicitly skipped."
26 }
27 end
28
29 test "skipped_oauth", %{conn: conn} do
30 conn
31 |> assign(:token, nil)
32 |> get("/test/authenticated_api/skipped_oauth")
33 |> json_response(200)
34 end
35
36 test "performed_oauth", %{user: user} do
37 %{conn: good_token_conn} = oauth_access(["read"], user: user)
38
39 good_token_conn
40 |> get("/test/authenticated_api/performed_oauth")
41 |> json_response(200)
42
43 %{conn: bad_token_conn} = oauth_access(["follow"], user: user)
44
45 bad_token_conn
46 |> get("/test/authenticated_api/performed_oauth")
47 |> json_response(403)
48 end
49 end