summaryrefslogtreecommitdiff
path: root/test/web/api_spec/app_operation_test.exs
diff options
context:
space:
mode:
authorIvan Tashkinov <ivantashkinov@gmail.com>2020-04-13 09:16:51 +0300
committerIvan Tashkinov <ivantashkinov@gmail.com>2020-04-13 09:16:51 +0300
commita21baf89d874823137cc49052cfe8da769ac0748 (patch)
tree20ed514fe2b13beebf0221d844745252f7604c02 /test/web/api_spec/app_operation_test.exs
parentdc2637c18880160286f50505b1140a58fdfdf7d1 (diff)
parent7ee35eb9a6a55ef610eb02a04a33f67e5921cff3 (diff)
downloadpleroma-a21baf89d874823137cc49052cfe8da769ac0748.tar.gz
pleroma-a21baf89d874823137cc49052cfe8da769ac0748.zip
Merge remote-tracking branch 'remotes/origin/develop' into output-of-relationships-in-statuses
Diffstat (limited to 'test/web/api_spec/app_operation_test.exs')
-rw-r--r--test/web/api_spec/app_operation_test.exs45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/web/api_spec/app_operation_test.exs b/test/web/api_spec/app_operation_test.exs
new file mode 100644
index 000000000..5b96abb44
--- /dev/null
+++ b/test/web/api_spec/app_operation_test.exs
@@ -0,0 +1,45 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Web.ApiSpec.AppOperationTest do
+ use Pleroma.Web.ConnCase, async: true
+
+ alias Pleroma.Web.ApiSpec
+ alias Pleroma.Web.ApiSpec.Schemas.AppCreateRequest
+ alias Pleroma.Web.ApiSpec.Schemas.AppCreateResponse
+
+ import OpenApiSpex.TestAssertions
+ import Pleroma.Factory
+
+ test "AppCreateRequest example matches schema" do
+ api_spec = ApiSpec.spec()
+ schema = AppCreateRequest.schema()
+ assert_schema(schema.example, "AppCreateRequest", api_spec)
+ end
+
+ test "AppCreateResponse example matches schema" do
+ api_spec = ApiSpec.spec()
+ schema = AppCreateResponse.schema()
+ assert_schema(schema.example, "AppCreateResponse", api_spec)
+ end
+
+ test "AppController produces a AppCreateResponse", %{conn: conn} do
+ api_spec = ApiSpec.spec()
+ app_attrs = build(:oauth_app)
+
+ json =
+ conn
+ |> put_req_header("content-type", "application/json")
+ |> post(
+ "/api/v1/apps",
+ Jason.encode!(%{
+ client_name: app_attrs.client_name,
+ redirect_uris: app_attrs.redirect_uris
+ })
+ )
+ |> json_response(200)
+
+ assert_schema(json, "AppCreateResponse", api_spec)
+ end
+end