Return an absolute template path from Zk.Template()

pull/6/head
Mickaël Menu 4 years ago
parent 3d871d2de3
commit ca0d95f242
No known key found for this signature in database
GPG Key ID: 53D73664CD359895

@ -166,14 +166,23 @@ func (zk *Zk) FilenameTemplate(dir Dir) string {
func (zk *Zk) Template(dir Dir) opt.String {
dirConfig := zk.dirConfig(dir)
var template string
switch {
case dirConfig != nil && dirConfig.Template != "":
return opt.NewString(dirConfig.Template)
template = dirConfig.Template
case zk.config.Template != "":
return opt.NewString(zk.config.Template)
default:
template = zk.config.Template
}
if template == "" {
return opt.NullString
}
if !filepath.IsAbs(template) {
template = filepath.Join(zk.Path, ".zk/templates", template)
}
return opt.NewString(template)
}
// RandIDOpts returns the options to use to generate a random ID for the given directory.

@ -63,19 +63,27 @@ func TestDefaultTemplate(t *testing.T) {
}
func TestCustomTemplate(t *testing.T) {
zk := &Zk{config: config{
Template: "root.tpl",
Dirs: []dirConfig{
{
Dir: "log",
Template: "log.tpl",
zk := &Zk{
Path: "/test",
config: config{
Template: "root.tpl",
Dirs: []dirConfig{
{
Dir: "log",
Template: "log.tpl",
},
{
Dir: "abs",
Template: "/abs/template.tpl",
},
},
},
}}
assert.Equal(t, zk.Template(dir("")), opt.NewString("root.tpl"))
assert.Equal(t, zk.Template(dir(".")), opt.NewString("root.tpl"))
assert.Equal(t, zk.Template(dir("unknown")), opt.NewString("root.tpl"))
assert.Equal(t, zk.Template(dir("log")), opt.NewString("log.tpl"))
}
assert.Equal(t, zk.Template(dir("")), opt.NewString("/test/.zk/templates/root.tpl"))
assert.Equal(t, zk.Template(dir(".")), opt.NewString("/test/.zk/templates/root.tpl"))
assert.Equal(t, zk.Template(dir("unknown")), opt.NewString("/test/.zk/templates/root.tpl"))
assert.Equal(t, zk.Template(dir("log")), opt.NewString("/test/.zk/templates/log.tpl"))
assert.Equal(t, zk.Template(dir("abs")), opt.NewString("/abs/template.tpl"))
}
func TestNoExtra(t *testing.T) {

Loading…
Cancel
Save