Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-06-30 17:11:05 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-07-06 21:03:36 +0300
commit12a65e76df9470d9563b91a22969ddb41b7c19aa (patch)
treeab7b7b3cc67fbb9b4a86c1c347081e4e959ed8e8 /hugolib
parent58c0f5e6171cbf8e3ed8d73ac95a7b85168c5b2f (diff)
Add openapi3.Unmarshal
Fixes #7442 Fixes #7443
Diffstat (limited to 'hugolib')
-rw-r--r--hugolib/openapi_test.go69
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`)
+
+}