integration_test.go (2160B)
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 templates_test 15 16 import ( 17 "testing" 18 19 "github.com/gohugoio/hugo/hugolib" 20 ) 21 22 func TestExists(t *testing.T) { 23 t.Parallel() 24 25 files := ` 26 -- config.toml -- 27 baseURL = 'http://example.com/' 28 -- layouts/index.html -- 29 index.html: {{ templates.Exists "index.html" }} 30 post/single.html: {{ templates.Exists "post/single.html" }} 31 partials/foo.html: {{ templates.Exists "partials/foo.html" }} 32 partials/doesnotexist.html: {{ templates.Exists "partials/doesnotexist.html" }} 33 -- layouts/post/single.html -- 34 -- layouts/partials/foo.html -- 35 ` 36 37 b := hugolib.NewIntegrationTestBuilder( 38 hugolib.IntegrationTestConfig{ 39 T: t, 40 TxtarString: files, 41 }, 42 ).Build() 43 44 b.AssertFileContent("public/index.html", ` 45 index.html: true 46 post/single.html: true 47 partials/foo.html: true 48 partials/doesnotexist.html: false 49 `) 50 } 51 52 func TestExistsWithBaseOf(t *testing.T) { 53 t.Parallel() 54 55 files := ` 56 -- config.toml -- 57 baseURL = 'http://example.com/' 58 -- layouts/baseof.html -- 59 {{ block "main" . }}{{ end }} 60 -- layouts/index.html -- 61 {{ define "main" }} 62 index.html: {{ templates.Exists "index.html" }} 63 post/single.html: {{ templates.Exists "post/single.html" }} 64 post/doesnotexist.html: {{ templates.Exists "post/doesnotexist.html" }} 65 {{ end }} 66 -- layouts/post/single.html -- 67 {{ define "main" }}MAIN{{ end }} 68 69 70 ` 71 72 b := hugolib.NewIntegrationTestBuilder( 73 hugolib.IntegrationTestConfig{ 74 T: t, 75 TxtarString: files, 76 }, 77 ).Build() 78 79 b.AssertFileContent("public/index.html", ` 80 index.html: true 81 post/single.html: true 82 post/doesnotexist.html: false 83 84 `) 85 }