diff options
Diffstat (limited to 'test/web/api_spec')
| -rw-r--r-- | test/web/api_spec/schema_examples_test.exs | 43 | 
1 files changed, 43 insertions, 0 deletions
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  | 
