github.com/neohugo/neohugo@v0.123.8/hugolib/frontmatter_test.go (about)

     1  // Copyright 2024 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 "testing"
    17  
    18  // Issue 10624
    19  func TestFrontmatterPreserveDatatypesForSlices(t *testing.T) {
    20  	t.Parallel()
    21  
    22  	files := `
    23  -- content/post/one.md --
    24  ---
    25  ints: [1, 2, 3]
    26  mixed: ["1", 2, 3]
    27  strings: ["1", "2","3"]
    28  ---	
    29  -- layouts/_default/single.html --
    30  Ints: {{ printf "%T" .Params.ints }} {{ range .Params.ints }}Int: {{ fmt.Printf "%[1]v (%[1]T)" . }}|{{ end }}
    31  Mixed: {{ printf "%T" .Params.mixed }} {{ range .Params.mixed }}Mixed: {{ fmt.Printf "%[1]v (%[1]T)" . }}|{{ end }}
    32  Strings: {{ printf "%T" .Params.strings }} {{ range .Params.strings }}Strings: {{ fmt.Printf "%[1]v (%[1]T)" . }}|{{ end }}
    33  `
    34  	b := NewIntegrationTestBuilder(
    35  		IntegrationTestConfig{
    36  			T:           t,
    37  			TxtarString: files,
    38  		},
    39  	)
    40  
    41  	b.Build()
    42  
    43  	b.AssertFileContent("public/post/one/index.html", "Ints: []interface {} Int: 1 (int)|Int: 2 (int)|Int: 3 (int)|")
    44  	b.AssertFileContent("public/post/one/index.html", "Mixed: []interface {} Mixed: 1 (string)|Mixed: 2 (int)|Mixed: 3 (int)|")
    45  	b.AssertFileContent("public/post/one/index.html", "Strings: []string Strings: 1 (string)|Strings: 2 (string)|Strings: 3 (string)|")
    46  }