hugo/hugolib/content_factory_test.go

61 lines
1.2 KiB
Go

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"`)
})
}