aboutsummaryrefslogtreecommitdiff
path: root/test/web/mastodon_api/controllers/app_controller_test.exs
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2019-10-02 13:27:55 +0200
committerlain <lain@soykaf.club>2019-10-02 13:27:55 +0200
commit557223b2b5b60956d3e1a19e9fdae9e9798c4fe2 (patch)
tree71d711f8932a2bd952f9f54ccef1322c55aed1d7 /test/web/mastodon_api/controllers/app_controller_test.exs
parent19bc0b8c79765dc485e081651a4e4c589d18b970 (diff)
parent433f2c0f6854d2838819e08f0fb0a9e8cf058021 (diff)
downloadpleroma-557223b2b5b60956d3e1a19e9fdae9e9798c4fe2.tar.gz
Merge remote-tracking branch 'origin/develop' into reactions
Diffstat (limited to 'test/web/mastodon_api/controllers/app_controller_test.exs')
-rw-r--r--test/web/mastodon_api/controllers/app_controller_test.exs60
1 files changed, 60 insertions, 0 deletions
diff --git a/test/web/mastodon_api/controllers/app_controller_test.exs b/test/web/mastodon_api/controllers/app_controller_test.exs
new file mode 100644
index 000000000..51788155b
--- /dev/null
+++ b/test/web/mastodon_api/controllers/app_controller_test.exs
@@ -0,0 +1,60 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Web.MastodonAPI.AppControllerTest do
+ use Pleroma.Web.ConnCase, async: true
+
+ alias Pleroma.Repo
+ alias Pleroma.Web.OAuth.App
+ alias Pleroma.Web.Push
+
+ import Pleroma.Factory
+
+ test "apps/verify_credentials", %{conn: conn} do
+ token = insert(:oauth_token)
+
+ conn =
+ conn
+ |> assign(:user, token.user)
+ |> assign(:token, token)
+ |> get("/api/v1/apps/verify_credentials")
+
+ app = Repo.preload(token, :app).app
+
+ expected = %{
+ "name" => app.client_name,
+ "website" => app.website,
+ "vapid_key" => Push.vapid_config() |> Keyword.get(:public_key)
+ }
+
+ assert expected == json_response(conn, 200)
+ end
+
+ test "creates an oauth app", %{conn: conn} do
+ user = insert(:user)
+ app_attrs = build(:oauth_app)
+
+ conn =
+ conn
+ |> assign(:user, user)
+ |> post("/api/v1/apps", %{
+ client_name: app_attrs.client_name,
+ redirect_uris: app_attrs.redirect_uris
+ })
+
+ [app] = Repo.all(App)
+
+ expected = %{
+ "name" => app.client_name,
+ "website" => app.website,
+ "client_id" => app.client_id,
+ "client_secret" => app.client_secret,
+ "id" => app.id |> to_string(),
+ "redirect_uri" => app.redirect_uris,
+ "vapid_key" => Push.vapid_config() |> Keyword.get(:public_key)
+ }
+
+ assert expected == json_response(conn, 200)
+ end
+end