URI: 
       pagemeta_integration_test.go - hugo - [fork] hugo port for 9front
  HTML git clone https://git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
       pagemeta_integration_test.go (3044B)
       ---
            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 pagemeta_test
           15 
           16 import (
           17         "strings"
           18         "testing"
           19 
           20         "github.com/gohugoio/hugo/hugolib"
           21 )
           22 
           23 func TestLastModEq(t *testing.T) {
           24         files := `
           25 -- hugo.toml --
           26 timeZone = "Europe/London"
           27 -- content/p1.md --
           28 ---
           29 title: p1
           30 date: 2024-03-13T06:00:00
           31 ---
           32 -- layouts/_default/single.html --
           33 Date: {{ .Date }}
           34 Lastmod: {{ .Lastmod }}
           35 Eq: {{ eq .Date .Lastmod }}
           36 
           37 `
           38 
           39         b := hugolib.Test(t, files)
           40 
           41         b.AssertFileContent("public/p1/index.html", `
           42 Date: 2024-03-13 06:00:00 +0000 GMT
           43 Lastmod: 2024-03-13 06:00:00 +0000 GMT
           44 Eq: true
           45 `)
           46 }
           47 
           48 func TestDateValidation(t *testing.T) {
           49         t.Parallel()
           50 
           51         files := `
           52 -- hugo.toml --
           53 disableKinds = ['page','rss','section','sitemap','taxonomy','term']
           54 -- content/_index.md --
           55 FRONT_MATTER
           56 -- layouts/index.html --
           57 {{ .Date.UTC.Format "2006-01-02" }}
           58 --
           59 `
           60         errorMsg := `ERROR the "date" front matter field is not a parsable date`
           61 
           62         // TOML: unquoted date/time (valid)
           63         f := strings.ReplaceAll(files, "FRONT_MATTER", `
           64 +++
           65 date = 2024-10-01
           66 +++
           67         `)
           68         b := hugolib.Test(t, f)
           69         b.AssertFileContent("public/index.html", "2024-10-01")
           70 
           71         // TOML: string (valid)
           72         f = strings.ReplaceAll(files, "FRONT_MATTER", `
           73 +++
           74 date = "2024-10-01"
           75 +++
           76         `)
           77         b = hugolib.Test(t, f)
           78         b.AssertFileContent("public/index.html", "2024-10-01")
           79 
           80         // TOML: empty string (valid)
           81         f = strings.ReplaceAll(files, "FRONT_MATTER", `
           82 +++
           83 date = ""
           84 +++
           85         `)
           86         b = hugolib.Test(t, f)
           87         b.AssertFileContent("public/index.html", "0001-01-01")
           88 
           89         // TOML: int (valid)
           90         f = strings.ReplaceAll(files, "FRONT_MATTER", `
           91 +++
           92 date = 0
           93 +++
           94         `)
           95         b = hugolib.Test(t, f)
           96         b.AssertFileContent("public/index.html", "1970-01-01")
           97 
           98         // TOML: string (invalid)
           99         f = strings.ReplaceAll(files, "FRONT_MATTER", `
          100 +++
          101 date = "2024-42-42"
          102 +++
          103         `)
          104         b, _ = hugolib.TestE(t, f)
          105         b.AssertLogContains(errorMsg)
          106 
          107         // TOML: bool (invalid)
          108         f = strings.ReplaceAll(files, "FRONT_MATTER", `
          109 +++
          110 date = true
          111 +++
          112         `)
          113         b, _ = hugolib.TestE(t, f)
          114         b.AssertLogContains(errorMsg)
          115 
          116         // TOML: float (invalid)
          117         f = strings.ReplaceAll(files, "FRONT_MATTER", `
          118 +++
          119 date = 6.7
          120 +++
          121         `)
          122         b, _ = hugolib.TestE(t, f)
          123         b.AssertLogContains(errorMsg)
          124 
          125         // JSON: null (valid)
          126         f = strings.ReplaceAll(files, "FRONT_MATTER", `
          127 {
          128   "date": null
          129 }
          130         `)
          131         b = hugolib.Test(t, f)
          132         b.AssertFileContent("public/index.html", "0001-01-01")
          133 
          134         // YAML: null (valid)
          135         f = strings.ReplaceAll(files, "FRONT_MATTER", `
          136 ---
          137 date:
          138 ---
          139         `)
          140         b = hugolib.Test(t, f)
          141         b.AssertFileContent("public/index.html", "0001-01-01")
          142 }