diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2020-06-30 17:11:05 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2020-07-06 21:03:36 +0300 |
commit | 12a65e76df9470d9563b91a22969ddb41b7c19aa (patch) | |
tree | ab7b7b3cc67fbb9b4a86c1c347081e4e959ed8e8 /hugolib/openapi_test.go | |
parent | 58c0f5e6171cbf8e3ed8d73ac95a7b85168c5b2f (diff) |
Add openapi3.Unmarshal
Fixes #7442
Fixes #7443
Diffstat (limited to 'hugolib/openapi_test.go')
-rw-r--r-- | hugolib/openapi_test.go | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/hugolib/openapi_test.go b/hugolib/openapi_test.go new file mode 100644 index 000000000..82f080311 --- /dev/null +++ b/hugolib/openapi_test.go @@ -0,0 +1,69 @@ +// Copyright 2019 The Hugo Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package hugolib + +import ( + "strings" + "testing" +) + +func TestOpenAPI3(t *testing.T) { + const openapi3Yaml = `openapi: 3.0.0 +info: + title: Sample API + description: Optional multiline or single-line description in [CommonMark](http://commonmark.org/help/) or HTML. + version: 0.1.9 +servers: + - url: http://api.example.com/v1 + description: Optional server description, e.g. Main (production) server + - url: http://staging-api.example.com + description: Optional server description, e.g. Internal staging server for testing +paths: + /users: + get: + summary: Returns a list of users. + description: Optional extended description in CommonMark or HTML. + responses: + '200': # status code + description: A JSON array of user names + content: + application/json: + schema: + type: array + items: + type: string +` + + b := newTestSitesBuilder(t).Running() + b.WithSourceFile("assets/api/myapi.yaml", openapi3Yaml) + + b.WithTemplatesAdded("index.html", ` +{{ $api := resources.Get "api/myapi.yaml" | openapi3.Unmarshal }} + +API: {{ $api.Info.Title | safeHTML }} + + +`) + + b.Build(BuildCfg{}) + + b.AssertFileContent("public/index.html", `API: Sample API`) + + b.EditFiles("assets/api/myapi.yaml", strings.Replace(openapi3Yaml, "Sample API", "Hugo API", -1)) + + b.Build(BuildCfg{}) + + b.AssertFileContent("public/index.html", `API: Hugo API`) + +} |