diff --git a/tests/01_render_test.go b/tests/01_render_test.go index cfec9c2..fdf7535 100644 --- a/tests/01_render_test.go +++ b/tests/01_render_test.go @@ -143,3 +143,69 @@ func TestRenderArrayOfTemplateHash(t *testing.T) { assert.Equal(t, outputRender, render, "Rendered output does not match expected output") } + +func TestRenderNonExistentFile(t *testing.T) { + nest, err := templatenest.New(templatenest.Option{TemplateDir: "templates"}) + if err != nil { + t.Fatalf("Failed to initialize TemplateNest: %+v", err) + } + + page := templatenest.Hash{"TEMPLATE": "this-template-file-does-not-exist"} + + _, err = nest.Render(page) + if assert.NotNil(t, err) { + expected := "error getting file info:" + assert.Equal(t, expected, err.Error()[:len(expected)]) + } +} + +func TestRenderNoNameLabel(t *testing.T) { + nest, err := templatenest.New(templatenest.Option{TemplateDir: "templates"}) + if err != nil { + t.Fatalf("Failed to initialize TemplateNest: %+v", err) + } + + page := templatenest.Hash{"variable": "Simple Variable"} + + _, err = nest.Render(page) + if assert.NotNil(t, err) { + expected := "encountered hash with no name label" + assert.Equal(t, expected, err.Error()[:len(expected)]) + } +} + +func TestRenderSimplePageArrays(t *testing.T) { + nest, err := templatenest.New(templatenest.Option{ + TemplateDir: "templates", + NoEscapeInput: true, + }) + if err != nil { + t.Fatalf("Failed to initialize TemplateNest: %+v", err) + } + + page := templatenest.Hash{ + "TEMPLATE": "00-simple-page", + "variable": "Simple Variable", + "simple_component": []interface{}{ + templatenest.Hash{ + "TEMPLATE": "01-simple-component", + "variable": "Simple Variable in Simple Component", + }, + "Another test", + []interface{}{ + templatenest.Hash{ + "TEMPLATE": "01-simple-component", + "variable": "Simple Variable in Simple Component", + }, + "Another nested test 2", + }, + }, + } + + outputPage := templatenest.Hash{"TEMPLATE": "output/12-simple-page-arrays"} + + render := nest.MustRender(page) + outputRender := nest.MustRender(outputPage) + + assert.Equal(t, outputRender, render, "Rendered output does not match expected output") +}