You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
zk/core/zk/config_test.go

81 lines
1.4 KiB
Go

4 years ago
package zk
import (
"testing"
"github.com/mickael-menu/zk/util/assert"
)
func TestParseMinimal(t *testing.T) {
conf, err := parseConfig([]byte(""))
4 years ago
assert.Nil(t, err)
assert.Equal(t, conf, &config{})
4 years ago
}
func TestParseComplete(t *testing.T) {
conf, err := parseConfig([]byte(`
4 years ago
// Comment
editor = "vim"
filename = "{{random-id}}.note"
template = "default.note"
random_id {
charset = "alphanum"
length = 4
case = "lower"
}
extra = {
4 years ago
hello = "world"
salut = "le monde"
}
dir "log" {
filename = "{{date}}.md"
template = "log.md"
random_id {
charset = "letters"
length = 8
case = "mixed"
}
extra = {
4 years ago
log-ext = "value"
}
}
`))
assert.Nil(t, err)
assert.Equal(t, conf, &config{
Filename: "{{random-id}}.note",
Template: "default.note",
4 years ago
RandomID: &randomIDConfig{
Charset: "alphanum",
Length: 4,
Case: "lower",
},
Editor: "vim",
4 years ago
Dirs: []dirConfig{
{
4 years ago
Dir: "log",
Filename: "{{date}}.md",
Template: "log.md",
RandomID: &randomIDConfig{
Charset: "letters",
Length: 8,
Case: "mixed",
},
Extra: map[string]string{"log-ext": "value"},
4 years ago
},
},
Extra: map[string]string{
4 years ago
"hello": "world",
"salut": "le monde",
},
})
4 years ago
}
func TestParseInvalidConfig(t *testing.T) {
conf, err := parseConfig([]byte("unknown = 'value'"))
4 years ago
assert.NotNil(t, err)
assert.Nil(t, conf)
}