hugo

Fork of github.com/gohugoio/hugo with reverse pagination support

git clone git://git.shimmy1996.com/hugo.git

integration_test.go (2208B)

    1 // Copyright 2021 The Hugo Authors. All rights reserved.
    2 //
    3 // Licensed under the Apache License, Version 2.0 (the "License");
    4 // you may not use this file except in compliance with the License.
    5 // You may obtain a copy of the License at
    6 // http://www.apache.org/licenses/LICENSE-2.0
    7 //
    8 // Unless required by applicable law or agreed to in writing, software
    9 // distributed under the License is distributed on an "AS IS" BASIS,
   10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   11 // See the License for the specific language governing permissions and
   12 // limitations under the License.
   13 
   14 package openapi3_test
   15 
   16 import (
   17 	"strings"
   18 	"testing"
   19 
   20 	"github.com/gohugoio/hugo/hugolib"
   21 )
   22 
   23 func TestUnmarshal(t *testing.T) {
   24 	t.Parallel()
   25 
   26 	files := `
   27 -- assets/api/myapi.yaml --
   28 openapi: 3.0.0
   29 info:
   30   title: Sample API
   31   description: Optional multiline or single-line description in [CommonMark](http://commonmark.org/help/) or HTML.
   32   version: 0.1.9
   33 servers:
   34   - url: http://api.example.com/v1
   35     description: Optional server description, e.g. Main (production) server
   36   - url: http://staging-api.example.com
   37     description: Optional server description, e.g. Internal staging server for testing
   38 paths:
   39   /users:
   40     get:
   41       summary: Returns a list of users.
   42       description: Optional extended description in CommonMark or HTML.
   43       responses:
   44         '200':    # status code
   45           description: A JSON array of user names
   46           content:
   47             application/json:
   48               schema: 
   49                 type: array
   50                 items: 
   51                   type: string
   52 -- config.toml --
   53 baseURL = 'http://example.com/'
   54 -- layouts/index.html --
   55 {{ $api := resources.Get "api/myapi.yaml" | openapi3.Unmarshal }}
   56 API: {{ $api.Info.Title | safeHTML }}
   57   `
   58 
   59 	b := hugolib.NewIntegrationTestBuilder(
   60 		hugolib.IntegrationTestConfig{
   61 			T:           t,
   62 			Running:     true,
   63 			TxtarString: files,
   64 		},
   65 	).Build()
   66 
   67 	b.AssertFileContent("public/index.html", `API: Sample API`)
   68 
   69 	b.
   70 		EditFileReplace("assets/api/myapi.yaml", func(s string) string { return strings.ReplaceAll(s, "Sample API", "Hugo API") }).
   71 		Build()
   72 
   73 	b.AssertFileContent("public/index.html", `API: Hugo API`)
   74 }