diff options
| author | lain <lain@soykaf.club> | 2020-04-27 12:07:08 +0200 | 
|---|---|---|
| committer | lain <lain@soykaf.club> | 2020-04-27 12:07:08 +0200 | 
| commit | c86143ed73ba5b2d8d373607ca706f1a428f3fe4 (patch) | |
| tree | e86641043e676803ffc27a57ce23c29a71347063 /test/web/api_spec | |
| parent | a51cdafc0192b66ce75659b424a690f52c9b2a49 (diff) | |
| parent | 01cc93b6873b5c50c0fc54774a3b004bf660e46b (diff) | |
| download | pleroma-c86143ed73ba5b2d8d373607ca706f1a428f3fe4.tar.gz pleroma-c86143ed73ba5b2d8d373607ca706f1a428f3fe4.zip | |
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms
Diffstat (limited to 'test/web/api_spec')
| -rw-r--r-- | test/web/api_spec/app_operation_test.exs | 45 | ||||
| -rw-r--r-- | test/web/api_spec/schema_examples_test.exs | 43 | 
2 files changed, 43 insertions, 45 deletions
| diff --git a/test/web/api_spec/app_operation_test.exs b/test/web/api_spec/app_operation_test.exs deleted file mode 100644 index 5b96abb44..000000000 --- a/test/web/api_spec/app_operation_test.exs +++ /dev/null @@ -1,45 +0,0 @@ -# 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 diff --git a/test/web/api_spec/schema_examples_test.exs b/test/web/api_spec/schema_examples_test.exs new file mode 100644 index 000000000..88b6f07cb --- /dev/null +++ b/test/web/api_spec/schema_examples_test.exs @@ -0,0 +1,43 @@ +# 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.SchemaExamplesTest do +  use ExUnit.Case, async: true +  import Pleroma.Tests.ApiSpecHelpers + +  @content_type "application/json" + +  for operation <- api_operations() do +    describe operation.operationId <> " Request Body" do +      if operation.requestBody do +        @media_type operation.requestBody.content[@content_type] +        @schema resolve_schema(@media_type.schema) + +        if @media_type.example do +          test "request body media type example matches schema" do +            assert_schema(@media_type.example, @schema) +          end +        end + +        if @schema.example do +          test "request body schema example matches schema" do +            assert_schema(@schema.example, @schema) +          end +        end +      end +    end + +    for {status, response} <- operation.responses do +      describe "#{operation.operationId} - #{status} Response" do +        @schema resolve_schema(response.content[@content_type].schema) + +        if @schema.example do +          test "example matches schema" do +            assert_schema(@schema.example, @schema) +          end +        end +      end +    end +  end +end | 
