From 481baa08968e29e2a2771e9d6022c9f995b2fc11 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Fri, 3 Apr 2026 20:11:23 +0200 Subject: [PATCH] all: Replace NewIntegrationTestBuilder with Test/TestE/TestRunning --- cache/filecache/filecache_integration_test.go | 13 +- .../allconfig/allconfig_integration_test.go | 8 +- hugolib/config_test.go | 126 ++++-------------- hugolib/content_map_test.go | 6 +- hugolib/filesystems/basefs_test.go | 21 +-- hugolib/frontmatter_test.go | 9 +- hugolib/hugo_smoke_test.go | 22 +-- hugolib/hugolib_integration_test.go | 26 +--- hugolib/page__fragments_test.go | 14 +- hugolib/page_test.go | 93 ++----------- hugolib/pagebundler_test.go | 8 +- hugolib/pagecollections_test.go | 30 +---- hugolib/rebuild_test.go | 73 +++------- hugolib/rendershortcodes_test.go | 8 +- hugolib/renderstring_test.go | 15 +-- hugolib/resource_chain_test.go | 7 +- hugolib/site_test.go | 58 ++------ hugolib/template_test.go | 120 +++-------------- internal/js/esbuild/batch_integration_test.go | 12 +- .../codeblocks/codeblocks_integration_test.go | 21 +-- markup/goldmark/goldmark_integration_test.go | 14 +- resources/page/page_integration_test.go | 14 +- resources/page/permalinks_integration_test.go | 35 +---- .../create/create_integration_test.go | 50 +------ .../babel/babel_integration_test.go | 10 +- .../cssjs/postcss_integration_test.go | 58 ++------ .../cssjs/tailwindcss_integration_test.go | 19 +-- .../js/js_integration_test.go | 50 ++----- .../minifier/minifier_integration_test.go | 7 +- .../dartsass/dartsass_integration_test.go | 98 ++------------ .../tocss/scss/scss_integration_test.go | 73 ++-------- resources/resources_integration_test.go | 26 +--- .../collections_integration_test.go | 14 +- tpl/debug/debug_integration_test.go | 9 +- tpl/os/os_integration_test.go | 16 +-- tpl/os/os_test.go | 16 +-- tpl/page/page_integration_test.go | 7 +- tpl/partials/partials_integration_test.go | 14 +- tpl/resources/resources_integration_test.go | 6 +- tpl/time/time_test.go | 20 +-- tpl/tplimpl/template_funcs_test.go | 16 +-- tpl/tplimpl/templatestore_integration_test.go | 9 +- tpl/tplimpl/tplimpl_integration_test.go | 32 +---- tpl/transform/remarshal_test.go | 8 +- tpl/transform/transform_integration_test.go | 9 +- tpl/transform/transform_test.go | 28 +--- tpl/transform/unmarshal_test.go | 12 +- 47 files changed, 230 insertions(+), 1130 deletions(-) diff --git a/cache/filecache/filecache_integration_test.go b/cache/filecache/filecache_integration_test.go index d17c4367b..88873c740 100644 --- a/cache/filecache/filecache_integration_test.go +++ b/cache/filecache/filecache_integration_test.go @@ -18,7 +18,6 @@ import ( "testing" "time" - "github.com/bep/logg" qt "github.com/frankban/quicktest" "github.com/gohugoio/hugo/htesting" "github.com/gohugoio/hugo/hugolib" @@ -39,9 +38,9 @@ title: "Home" ` - b := hugolib.NewIntegrationTestBuilder( - hugolib.IntegrationTestConfig{T: t, TxtarString: files, RunGC: true, NeedsOsFS: true}, - ).Build() + b := hugolib.Test(t, files, hugolib.TestOptOsFs(), hugolib.TestOptWithConfig(func(c *hugolib.IntegrationTestConfig) { + c.RunGC = true + })) _, err := b.H.BaseFs.ResourcesCache.Stat(filepath.Join("_gen", "images")) @@ -77,9 +76,9 @@ iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAA ` - b := hugolib.NewIntegrationTestBuilder( - hugolib.IntegrationTestConfig{T: t, TxtarString: files, Running: true, RunGC: true, NeedsOsFS: true, LogLevel: logg.LevelInfo}, - ).Build() + b := hugolib.TestRunning(t, files, hugolib.TestOptOsFs(), hugolib.TestOptInfo(), hugolib.TestOptWithConfig(func(c *hugolib.IntegrationTestConfig) { + c.RunGC = true + })) b.Assert(b.GCCount, qt.Equals, 0) b.Assert(b.H, qt.IsNotNil) diff --git a/config/allconfig/allconfig_integration_test.go b/config/allconfig/allconfig_integration_test.go index 6899cf21c..8bdfe76ac 100644 --- a/config/allconfig/allconfig_integration_test.go +++ b/config/allconfig/allconfig_integration_test.go @@ -43,9 +43,7 @@ title: "p1" Title: {{ .Title }} ` - b := hugolib.NewIntegrationTestBuilder( - hugolib.IntegrationTestConfig{T: t, TxtarString: files}, - ).Build() + b := hugolib.Test(t, files) // b.AssertFileContent("public/p1/index.html", "Title: p1") @@ -81,9 +79,7 @@ baseURL = "https://example.com" logI18nWarnings = true logPathWarnings = true ` - b := hugolib.NewIntegrationTestBuilder( - hugolib.IntegrationTestConfig{T: t, TxtarString: files}, - ).Build() + b := hugolib.Test(t, files) conf := b.H.Configs.Base diff --git a/hugolib/config_test.go b/hugolib/config_test.go index 0b3147bc3..ae5efaf30 100644 --- a/hugolib/config_test.go +++ b/hugolib/config_test.go @@ -125,12 +125,7 @@ weight = 1 [languages.sv] weight = 2 ` - b, err := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - }, - ).BuildE() + b, err := TestE(t, files) b.Assert(err, qt.IsNotNil) b.Assert(err.Error(), qt.Contains, `default language "sv" is disabled`) @@ -174,13 +169,9 @@ pm31: {{ .Site.Params.pm3.pm31 }} ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - Environ: []string{"HUGO_PARAMS_P2=p2env", "HUGO_PARAMS_PM2_PM21=pm21env", "HUGO_PARAMS_PM3_PM31=pm31env"}, - }, - ).Build() + b := Test(t, files, TestOptWithConfig(func(c *IntegrationTestConfig) { + c.Environ = []string{"HUGO_PARAMS_P2=p2env", "HUGO_PARAMS_PM2_PM21=pm21env", "HUGO_PARAMS_PM3_PM31=pm31env"} + })) b.AssertFileContent("public/index.html", "p1: p1base\np2: p2env\npm21: pm21env\npm22: pm22base\npm31: pm31env") }) @@ -254,14 +245,9 @@ Home. for i, v := range environ { environ[i] = strings.ReplaceAll(v, " ", delim) } - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - Environ: environ, - BuildCfg: BuildCfg{SkipRender: true}, - }, - ).Build() + b := Test(t, files, TestOptSkipRender(), TestOptWithConfig(func(c *IntegrationTestConfig) { + c.Environ = environ + })) conf := b.H.Configs.Base b.Assert(conf.DisableLanguages, qt.DeepEquals, []string{"no", "sv"}) @@ -651,12 +637,7 @@ defaultMarkdownHandler = 'blackfriday' ` - b, err := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - }, - ).BuildE() + b, err := TestE(t, files) b.Assert(err, qt.IsNotNil) b.Assert(err.Error(), qt.Contains, "Configured defaultMarkdownHandler \"blackfriday\" not found. Did you mean to use goldmark? Blackfriday was removed in Hugo v0.100.0.") @@ -692,12 +673,7 @@ themeconfigdirparam: {{ site.Params.themeconfigdirparam }} files := strings.ReplaceAll(filesTemplate, "hugo.toml", configName) - b, err := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - }, - ).BuildE() + b, err := TestE(t, files) b.Assert(err, qt.IsNil) b.AssertFileContent("public/index.html", @@ -743,13 +719,9 @@ Single. files = strings.ReplaceAll(files, "WEIGHT_SV", "2") cfg := config.New() - b, err := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - BaseCfg: cfg, - }, - ).BuildE() + b, err := TestE(t, files, TestOptWithConfig(func(c *IntegrationTestConfig) { + c.BaseCfg = cfg + })) b.Assert(err, qt.IsNil) b.AssertFileContent("public/index.html", "Home: en|2|") @@ -762,13 +734,9 @@ Single. for range 20 { cfg := config.New() - b, err := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - BaseCfg: cfg, - }, - ).BuildE() + b, err := TestE(t, files, TestOptWithConfig(func(c *IntegrationTestConfig) { + c.BaseCfg = cfg + })) b.Assert(err, qt.IsNil) b.AssertFileContent("public/index.html", "Home: en|2|") @@ -801,12 +769,7 @@ Home. ` - b, err := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - }, - ).BuildE() + b, err := TestE(t, files) b.Assert(err, qt.IsNil) b.AssertFileContent("public/myindex.html", "Home.") @@ -836,12 +799,7 @@ ThisIsAParam: {{ site.Params.thisIsAParam }} ` - b, err := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - }, - ).BuildE() + b, err := TestE(t, files) b.Assert(err, qt.IsNil) b.AssertFileContent("public/index.html", ` @@ -882,13 +840,7 @@ LanguageCode: {{ eq site.LanguageCode site.Language.LanguageCode }}|{{ site.Lang {{ end }} ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - LogLevel: logg.LevelWarn, - }, - ).Build() + b := Test(t, files, TestOptWarn()) b.Assert(b.H.Log.LoggCount(logg.LevelWarn), qt.Equals, 1) @@ -936,13 +888,9 @@ func TestConfigHugoWorkingDir(t *testing.T) { WorkingDir: {{ hugo.WorkingDir }}| ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - WorkingDir: "myworkingdir", - }, - ).Build() + b := Test(t, files, TestOptWithConfig(func(c *IntegrationTestConfig) { + c.WorkingDir = "myworkingdir" + })) b.AssertFileContent("public/index.html", ` WorkingDir: myworkingdir| @@ -1009,12 +957,7 @@ Home ` - b, err := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - }, - ).BuildE() + b, err := TestE(t, files) b.Assert(err, qt.IsNil) b.AssertFileContent("public/index.html", ` @@ -1147,12 +1090,7 @@ Foo: {{ site.Params.foo }}| ` - b, err := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - }, - ).BuildE() + b, err := TestE(t, files) b.Assert(err, qt.IsNotNil) b.Assert(err.Error(), qt.Contains, "invalid language configuration ") @@ -1174,12 +1112,7 @@ weight = 1 ` - b, err := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - }, - ).BuildE() + b, err := TestE(t, files) b.Assert(err, qt.IsNotNil) b.Assert(err.Error(), qt.Contains, `defaultContentLanguage "sv" not found in languages configuration`) @@ -1339,14 +1272,9 @@ func TestLoadConfigYamlEnvVar(t *testing.T) { env = defaultEnv } - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - Environ: env, - BuildCfg: BuildCfg{SkipRender: true}, - }, - ).Build() + b := Test(t, files, TestOptSkipRender(), TestOptWithConfig(func(c *IntegrationTestConfig) { + c.Environ = env + })) outputs := b.H.Configs.Base.Outputs if env == nil { diff --git a/hugolib/content_map_test.go b/hugolib/content_map_test.go index 2f1f73a2c..6072c4256 100644 --- a/hugolib/content_map_test.go +++ b/hugolib/content_map_test.go @@ -210,11 +210,7 @@ Home: {{ .Title }}| ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: c, - TxtarString: files, - }).Build() + b := Test(c, files) b.AssertFileContent("public/index.html", "Home: Integration Test|") } diff --git a/hugolib/filesystems/basefs_test.go b/hugolib/filesystems/basefs_test.go index 5bc0393fe..883cf4d28 100644 --- a/hugolib/filesystems/basefs_test.go +++ b/hugolib/filesystems/basefs_test.go @@ -296,14 +296,9 @@ F1 text os.Chdir(wd) - b := hugolib.NewIntegrationTestBuilder( - hugolib.IntegrationTestConfig{ - T: t, - TxtarString: files, - NeedsOsFS: true, - WorkingDir: tmpDir, - }, - ).Build() + b := hugolib.Test(t, files, hugolib.TestOptOsFs(), hugolib.TestOptWithConfig(func(c *hugolib.IntegrationTestConfig) { + c.WorkingDir = tmpDir + })) bfs := b.H.BaseFs watchFilenames := bfs.WatchFilenames() @@ -432,13 +427,9 @@ title: "Foo" --- ` - b := hugolib.NewIntegrationTestBuilder( - hugolib.IntegrationTestConfig{ - T: t, - WorkingDir: tempDir, - TxtarString: files, - }, - ).Build() + b := hugolib.Test(t, files, hugolib.TestOptWithConfig(func(c *hugolib.IntegrationTestConfig) { + c.WorkingDir = tempDir + })) abs1 := filepath.Join(tempDir, "content", "foo.md") rel, abs2, err := b.H.BaseFs.AbsProjectContentDir("foo.md") diff --git a/hugolib/frontmatter_test.go b/hugolib/frontmatter_test.go index 8b8937f49..2f823e929 100644 --- a/hugolib/frontmatter_test.go +++ b/hugolib/frontmatter_test.go @@ -31,14 +31,7 @@ Ints: {{ printf "%T" .Params.ints }} {{ range .Params.ints }}Int: {{ fmt.Printf Mixed: {{ printf "%T" .Params.mixed }} {{ range .Params.mixed }}Mixed: {{ fmt.Printf "%[1]v (%[1]T)" . }}|{{ end }} Strings: {{ printf "%T" .Params.strings }} {{ range .Params.strings }}Strings: {{ fmt.Printf "%[1]v (%[1]T)" . }}|{{ end }} ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - }, - ) - - b.Build() + b := Test(t, files) b.AssertFileContent("public/post/one/index.html", "Ints: []interface {} Int: 1 (uint64)|Int: 2 (uint64)|Int: 3 (uint64)|") b.AssertFileContent("public/post/one/index.html", "Mixed: []interface {} Mixed: 1 (string)|Mixed: 2 (uint64)|Mixed: 3 (uint64)|") diff --git a/hugolib/hugo_smoke_test.go b/hugolib/hugo_smoke_test.go index 2561b160d..284091db6 100644 --- a/hugolib/hugo_smoke_test.go +++ b/hugolib/hugo_smoke_test.go @@ -38,13 +38,7 @@ title: Page Home: {{ .Title }} ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - // LogLevel: logg.LevelTrace, - }, - ).Build() + b := Test(t, files) b.Assert(b.H.Log.LoggCount(logg.LevelWarn), qt.Equals, 0) b.AssertFileContent("public/index.html", `Hello`) @@ -508,13 +502,7 @@ Content Tag 1. ` - b := NewIntegrationTestBuilder(IntegrationTestConfig{ - T: t, - TxtarString: files, - NeedsOsFS: true, - // Verbose: true, - // LogLevel: logg.LevelTrace, - }).Build() + b := Test(t, files, TestOptOsFs()) b.AssertFileContent("public/en/index.html", "Home: en|home|/en/|Home in English|

Home Content.

\n|HTML", @@ -751,11 +739,7 @@ The content. // This is just a test to verify that BenchmarkBaseline is working as intended. func TestBenchmarkBaseline(t *testing.T) { - cfg := IntegrationTestConfig{ - T: t, - TxtarString: benchmarkBaselineFiles(true), - } - b := NewIntegrationTestBuilder(cfg).Build() + b := Test(t, benchmarkBaselineFiles(true)) b.Assert(len(b.H.Sites), qt.Equals, 4) b.Assert(len(b.H.Sites[0].RegularPages()), qt.Equals, 161) diff --git a/hugolib/hugolib_integration_test.go b/hugolib/hugolib_integration_test.go index 3d416c76c..c5570469a 100644 --- a/hugolib/hugolib_integration_test.go +++ b/hugolib/hugolib_integration_test.go @@ -58,13 +58,7 @@ tags: ['T1'] ` - b := hugolib.NewIntegrationTestBuilder( - hugolib.IntegrationTestConfig{ - T: t, - TxtarString: files, - }, - ) - b.Build() + b := hugolib.Test(t, files) // Kind home b.AssertFileContent("public/en/index.html", @@ -98,14 +92,8 @@ func TestRenderStringBadMarkupOpt(t *testing.T) { {{ "something" | .RenderString $opts }} ` - b := hugolib.NewIntegrationTestBuilder( - hugolib.IntegrationTestConfig{ - T: t, - TxtarString: files, - }, - ) - - _, err := b.BuildE() + b, err := hugolib.TestE(t, files) + _ = b want := `no content renderer found for markup "foo"` if !strings.Contains(err.Error(), want) { @@ -136,12 +124,6 @@ title: Films {{ (site.GetPage "/films").Title }} ` - b := hugolib.NewIntegrationTestBuilder( - hugolib.IntegrationTestConfig{ - T: t, - TxtarString: files, - }, - ) - b.Build() + b := hugolib.Test(t, files) b.AssertFileContent("public/index.html", "tags\nfiction\nbooks\nFilms") } diff --git a/hugolib/page__fragments_test.go b/hugolib/page__fragments_test.go index 0e4fd1c60..4a6fe356d 100644 --- a/hugolib/page__fragments_test.go +++ b/hugolib/page__fragments_test.go @@ -56,12 +56,7 @@ Fragments : {{ $p1.Fragments.Identifiers }} ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - TxtarString: files, - T: t, - }, - ).Build() + b := Test(t, files) b.AssertFileContent("public/en/p1/index.html", "HTML") b.AssertFileContent("public/en/p1/index.json", "ToC: \nFragments : [heading-1-fr]") @@ -98,12 +93,7 @@ Fragments: {{ .Fragments.Identifiers }}| ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - TxtarString: files, - T: t, - }, - ).Build() + b := Test(t, files) b.AssertFileContent("public/p1/index.html", "Fragments: [heading-p1-1 heading-p2-1 heading-p2-2]|") b.AssertFileContent("public/p2/index.html", "Fragments: [heading-p2-1 heading-p2-2]|") diff --git a/hugolib/page_test.go b/hugolib/page_test.go index 245456b97..1d34df54c 100644 --- a/hugolib/page_test.go +++ b/hugolib/page_test.go @@ -378,14 +378,7 @@ allow = ['^python$', '^rst2html.*', '^asciidoctor$'] homePath := fmt.Sprintf("_index.%s", e.ext) files.WriteString(fmt.Sprintf("-- content/%s --\n%s\n", homePath, homePage)) - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files.String(), - NeedsOsFS: true, - BaseCfg: cfg, - }, - ).Build() + b := Test(t, files.String(), TestOptOsFs(), TestOptWithConfig(func(c *IntegrationTestConfig) { c.BaseCfg = cfg })) s := b.H.Sites[0] @@ -412,13 +405,7 @@ baseURL = "http://example.com/" -- content/simple.md -- ` + simplePageWithSummaryDelimiterAndMarkdownThatCrossesBorder + ` ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - BuildCfg: BuildCfg{SkipRender: true}, - }, - ).Build() + b := Test(t, files, TestOptSkipRender()) b.Assert(len(b.H.Sites[0].RegularPages()), qt.Equals, 1) @@ -688,13 +675,7 @@ baseURL = "http://example.com/" -- content/tocpage.md -- ` + pageWithToC + ` ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - BuildCfg: BuildCfg{SkipRender: true}, - }, - ).Build() + b := Test(t, files, TestOptSkipRender()) b.Assert(len(b.H.Sites[0].RegularPages()), qt.Equals, 1) @@ -1069,13 +1050,7 @@ baseURL = "http://example.com/" -- content/simple.md -- ` + simplePageRFC3339Date + ` ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - BuildCfg: BuildCfg{SkipRender: true}, - }, - ).Build() + b := Test(t, files, TestOptSkipRender()) b.Assert(len(b.H.Sites[0].RegularPages()), qt.Equals, 1) @@ -1109,13 +1084,7 @@ date = ["` + dateHandler + `", "date"] -- content/section/2012-02-22-slug.md -- ` + fmt.Sprintf(pageTemplate, 2, "slug: aslug") + ` ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - NeedsOsFS: true, // Needed for fileModTime - }, - ).Build() + b := Test(t, files, TestOptOsFs()) s := b.H.Sites[0] b.Assert(len(s.RegularPages()), qt.Equals, 2) @@ -1277,13 +1246,7 @@ post = ":year/:month/:day/:title/" -- content/` + test.path + ` -- ` + test.content + ` ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - BuildCfg: BuildCfg{SkipRender: true}, - }, - ).Build() + b := Test(t, files, TestOptSkipRender()) s := b.H.Sites[0] b.Assert(len(s.RegularPages()), qt.Equals, 1) @@ -1469,13 +1432,7 @@ baseURL = "http://example.com/" -- content/simple.md -- ` + utf8BOM + simplePage + ` ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - BuildCfg: BuildCfg{SkipRender: true}, - }, - ).Build() + b := Test(t, files, TestOptSkipRender()) b.Assert(len(b.H.Sites[0].RegularPages()), qt.Equals, 1) @@ -1745,13 +1702,7 @@ title: Scratch Me! {{< scratch >}} ` - b, err := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - BuildCfg: BuildCfg{}, - }, - ).BuildE() + b, err := TestE(t, files) b.Assert(err, qt.IsNil) @@ -1824,13 +1775,7 @@ author = "Jo Nesbø" +++ ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - BuildCfg: BuildCfg{}, - }, - ).Build() + b := Test(t, files) b.AssertFileContent("public/index.html", "Author page: Ernest Miller Hemingway", @@ -1894,13 +1839,7 @@ T-SHORT -- content/page.md -- ` + content + ` ` - b := NewIntegrationTestBuilder( - IntegrationTestConfig{ - T: t, - TxtarString: files, - BuildCfg: BuildCfg{}, - }, - ).Build() + b := Test(t, files) b.AssertFileContent("public/page/index.html", `