github.com/linchen2chris/hugo@v0.0.0-20230307053224-cec209389705/tpl/os/integration_test.go (about)

     1  // Copyright 2022 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 os_test
    15  
    16  import (
    17  	"testing"
    18  
    19  	"github.com/gohugoio/hugo/hugolib"
    20  )
    21  
    22  // Issue 9599
    23  func TestReadDirWorkDir(t *testing.T) {
    24  	t.Parallel()
    25  
    26  	files := `
    27  -- config.toml --
    28  theme = "mytheme"
    29  -- myproject.txt --
    30  Hello project!
    31  -- themes/mytheme/mytheme.txt --
    32  Hello theme!
    33  -- layouts/index.html --
    34  {{ $entries := (readDir ".") }}
    35  START:|{{ range $entry := $entries }}{{ if not $entry.IsDir }}{{ $entry.Name }}|{{ end }}{{ end }}:END:
    36  
    37  
    38    `
    39  
    40  	b := hugolib.NewIntegrationTestBuilder(
    41  		hugolib.IntegrationTestConfig{
    42  			T:           t,
    43  			TxtarString: files,
    44  			NeedsOsFS:   true,
    45  		},
    46  	).Build()
    47  
    48  	b.AssertFileContent("public/index.html", `
    49  START:|config.toml|myproject.txt|:END:
    50  `)
    51  }
    52  
    53  // Issue 9620
    54  func TestReadFileNotExists(t *testing.T) {
    55  	t.Parallel()
    56  
    57  	files := `
    58  -- config.toml --
    59  -- layouts/index.html --
    60  {{ $fi := (readFile "doesnotexist") }}
    61  {{ if $fi }}Failed{{ else }}OK{{ end }}
    62  
    63  
    64    `
    65  
    66  	b := hugolib.NewIntegrationTestBuilder(
    67  		hugolib.IntegrationTestConfig{
    68  			T:           t,
    69  			TxtarString: files,
    70  			NeedsOsFS:   true,
    71  		},
    72  	).Build()
    73  
    74  	b.AssertFileContent("public/index.html", `
    75  OK
    76  `)
    77  }