Skip to content

Commit

Permalink
templates: Port integration test to its package
Browse files Browse the repository at this point in the history
  • Loading branch information
bep committed Feb 9, 2022
1 parent d22f779 commit b06c210
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 26 deletions.
26 changes: 0 additions & 26 deletions hugolib/resource_chain_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -713,32 +713,6 @@ JSON: {{ $json.RelPermalink }}: {{ $json.Content }}
"JSONS: 2", "/jsons/data1.json: json1 content")
}

func TestExecuteAsTemplateWithLanguage(t *testing.T) {
b := newMultiSiteTestDefaultBuilder(t)
indexContent := `
Lang: {{ site.Language.Lang }}
{{ $templ := "{{T \"hello\"}}" | resources.FromString "f1.html" }}
{{ $helloResource := $templ | resources.ExecuteAsTemplate (print "f%s.html" .Lang) . }}
Hello1: {{T "hello"}}
Hello2: {{ $helloResource.Content }}
LangURL: {{ relLangURL "foo" }}
`
b.WithTemplatesAdded("index.html", indexContent)
b.WithTemplatesAdded("index.fr.html", indexContent)

b.Build(BuildCfg{})

b.AssertFileContent("public/en/index.html", `
Hello1: Hello
Hello2: Hello
`)

b.AssertFileContent("public/fr/index.html", `
Hello1: Bonjour
Hello2: Bonjour
`)
}

func TestResourceChainPostCSS(t *testing.T) {
if !htesting.IsCI() {
t.Skip("skip (relative) long running modules test when running locally")
Expand Down
79 changes: 79 additions & 0 deletions resources/resource_transformers/templates/integration_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
// Copyright 2021 The Hugo Authors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package templates_test

import (
"testing"

qt "github.com/frankban/quicktest"

"github.com/gohugoio/hugo/hugolib"
)

func TestExecuteAsTemplateMultipleLanguages(t *testing.T) {
c := qt.New(t)

files := `
-- config.toml --
baseURL = "http://example.com/blog"
defaultContentLanguage = "fr"
defaultContentLanguageInSubdir = true
[Languages]
[Languages.en]
weight = 10
title = "In English"
languageName = "English"
[Languages.fr]
weight = 20
title = "Le Français"
languageName = "Français"
-- i18n/en.toml --
[hello]
other = "Hello"
-- i18n/fr.toml --
[hello]
other = "Bonjour"
-- layouts/index.fr.html --
Lang: {{ site.Language.Lang }}
{{ $templ := "{{T \"hello\"}}" | resources.FromString "f1.html" }}
{{ $helloResource := $templ | resources.ExecuteAsTemplate (print "f%s.html" .Lang) . }}
Hello1: {{T "hello"}}
Hello2: {{ $helloResource.Content }}
LangURL: {{ relLangURL "foo" }}
-- layouts/index.html --
Lang: {{ site.Language.Lang }}
{{ $templ := "{{T \"hello\"}}" | resources.FromString "f1.html" }}
{{ $helloResource := $templ | resources.ExecuteAsTemplate (print "f%s.html" .Lang) . }}
Hello1: {{T "hello"}}
Hello2: {{ $helloResource.Content }}
LangURL: {{ relLangURL "foo" }}
`

b := hugolib.NewIntegrationTestBuilder(
hugolib.IntegrationTestConfig{
T: c,
TxtarString: files,
}).Build()

b.AssertFileContent("public/en/index.html", `
Hello1: Hello
Hello2: Hello
`)

b.AssertFileContent("public/fr/index.html", `
Hello1: Bonjour
Hello2: Bonjour
`)
}

0 comments on commit b06c210

Please # to comment.