pagr

A 'static site generator', built using dati.
Log | Files | Refs | Atom

commit af2bc729ac896a6131541a77f19e7f338e5ee669
parent 84d768ae8bdb8e5263778c21eb2e0451874b91db
Author: gearsix <gearsix@tuta.io>
Date:   Thu, 30 Sep 2021 00:10:59 +0100

page_test.go#TestBuild, refactor page.go#Build

Diffstat:
Mpage.go | 17++++++-----------
Mpage_test.go | 19++++++++++++++++++-
Mpagr.go | 3++-
3 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/page.go b/page.go @@ -363,19 +363,14 @@ func CopyFile(src, dst string) (err error) { return dstf.Sync() } -func (p *Page) Build(outDir string, t suti.Template) error { - if outb, err := t.Execute(p); err != nil { - return err - } else { - out := filepath.Join(outDir, p.Path, "index.html") - if err = os.MkdirAll(filepath.Dir(out), 0755); err != nil { - return err - } - if err = os.WriteFile(out, outb.Bytes(), 0644); err != nil { - return err +func (p *Page) Build(outDir string, t suti.Template) (out string, err error) { + if outb, err := t.Execute(p); err == nil { + out = filepath.Join(outDir, p.Path, "index.html") + if err = os.MkdirAll(filepath.Dir(out), 0755); err == nil { + err = os.WriteFile(out, outb.Bytes(), 0644) } } - return nil + return out, err } // convertTextToHTML parses textual data from `in` and line-by-line converts diff --git a/page_test.go b/page_test.go @@ -5,6 +5,7 @@ import ( "path/filepath" "os" "time" + "notabug.org/gearsix/suti" "testing" ) @@ -311,6 +312,22 @@ func TestCopyAssets(test *testing.T) { func TestBuild(test *testing.T) { test.Parallel() - // BOOKMARK + // setup + var err error + tdir := test.TempDir() + p := NewPage("/test", time.Now()) + t, err := suti.LoadTemplateString("tmpl", "test", "{{.Title}}") + + var fpath string + if fpath, err = p.Build(tdir, t); err != nil { + test.Fatal(err) + } + var fbuf []byte + if fbuf, err = os.ReadFile(fpath); err != nil { + test.Fatal(err) + } + if string(fbuf) != "Test" { + test.Fatalf("invalid result parsed: '%s', expected: 'Test'", string(fbuf)) + } } diff --git a/pagr.go b/pagr.go @@ -80,7 +80,8 @@ func main() { wg.Add(1) go func(page Page) { defer wg.Done() - check(page.Build(config.Output, tmpl)) + _, err = page.Build(config.Output, tmpl) + check(err) check(page.CopyAssets(config.Pages, config.Output)) vlog("-> %s", page.Path) }(pg)