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>2022-02-09 15:45:38 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2022-02-09 17:41:32 +0300
commit39f69ca7f078fe00ca80eef8f512f894a78e8f68 (patch)
treefdbfb536b0b9a6b91270e2f25afd4c1b4144ec52 /tpl/openapi
parent64f75adcf6cf44fafeea7e4d00d8d05d951931e6 (diff)
openapi3: Port integration test into correct package
Diffstat (limited to 'tpl/openapi')
-rw-r--r--tpl/openapi/openapi3/integration_test.go76
1 files changed, 76 insertions, 0 deletions
diff --git a/tpl/openapi/openapi3/integration_test.go b/tpl/openapi/openapi3/integration_test.go
new file mode 100644
index 000000000..2b0730154
--- /dev/null
+++ b/tpl/openapi/openapi3/integration_test.go
@@ -0,0 +1,76 @@
+// Copyright 2021 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 openapi3_test
+
+import (
+ "strings"
+ "testing"
+
+ "github.com/gohugoio/hugo/hugolib"
+
+ qt "github.com/frankban/quicktest"
+)
+
+func TestUnmarshal(t *testing.T) {
+ c := qt.New(t)
+
+ files := `
+-- assets/api/myapi.yaml --
+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
+-- config.toml --
+baseURL = 'http://example.com/'
+-- layouts/index.html --
+{{ $api := resources.Get "api/myapi.yaml" | openapi3.Unmarshal }}
+API: {{ $api.Info.Title | safeHTML }}
+ `
+
+ b := hugolib.NewIntegrationTestBuilder(
+ hugolib.IntegrationTestConfig{
+ T: c,
+ Running: true,
+ TxtarString: files,
+ },
+ ).Build()
+
+ b.AssertFileContent("public/index.html", `API: Sample API`)
+
+ b.
+ EditFileReplace("assets/api/myapi.yaml", func(s string) string { return strings.ReplaceAll(s, "Sample API", "Hugo API") }).
+ Build()
+
+ b.AssertFileContent("public/index.html", `API: Hugo API`)
+}