github.com/linchen2chris/hugo@v0.0.0-20230307053224-cec209389705/hugolib/siteJSONEncode_test.go (about)

     1  // Copyright 2019 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 hugolib
    15  
    16  import (
    17  	"testing"
    18  )
    19  
    20  // Issue #1123
    21  // Testing prevention of cyclic refs in JSON encoding
    22  // May be smart to run with: -timeout 4000ms
    23  func TestEncodePage(t *testing.T) {
    24  	t.Parallel()
    25  
    26  	templ := `Page: |{{ index .Site.RegularPages 0 | jsonify }}|
    27  Site: {{ site | jsonify }}
    28  `
    29  
    30  	b := newTestSitesBuilder(t)
    31  	b.WithSimpleConfigFile().WithTemplatesAdded("index.html", templ)
    32  	b.WithContent("page.md", `---
    33  title: "Page"
    34  date: 2019-02-28
    35  ---
    36  
    37  Content.
    38  
    39  `)
    40  
    41  	b.Build(BuildCfg{})
    42  
    43  	b.AssertFileContent("public/index.html", `"Date":"2019-02-28T00:00:00Z"`)
    44  }