package hugolib import ( "bytes" "path/filepath" "testing" qt "github.com/frankban/quicktest" ) func TestContentFactory(t *testing.T) { t.Parallel() c := qt.New(t) c.Run("Simple", func(c *qt.C) { workingDir := "/my/work" b := newTestSitesBuilder(c) b.WithWorkingDir(workingDir).WithConfigFile("toml", ` workingDir="/my/work" [module] [[module.mounts]] source = 'mcontent/en' target = 'content' lang = 'en' [[module.mounts]] source = 'archetypes' target = 'archetypes' `) b.WithSourceFile(filepath.Join("mcontent/en/bundle", "index.md"), "") b.WithSourceFile(filepath.Join("archetypes", "post.md"), `--- title: "{{ replace .Name "-" " " | title }}" date: {{ .Date }} draft: true --- Hello World. `) b.CreateSites() cf := NewContentFactory(b.H) abs, err := cf.CreateContentPlaceHolder(filepath.FromSlash("mcontent/en/blog/mypage.md")) b.Assert(err, qt.IsNil) b.Assert(abs, qt.Equals, filepath.FromSlash("/my/work/mcontent/en/blog/mypage.md")) b.Build(BuildCfg{SkipRender: true}) p := b.H.GetContentPage(abs) b.Assert(p, qt.Not(qt.IsNil)) var buf bytes.Buffer b.Assert(cf.AppplyArchetypeFilename(&buf, p, "", "post.md"), qt.IsNil) b.Assert(buf.String(), qt.Contains, `title: "Mypage"`) }) }