Make rule parsing more robust

- check args length before popping
- ensure rule has name
This commit is contained in:
Thom Seddon
2019-06-10 11:37:38 +01:00
parent 41a3f2a5a9
commit d33ecc0654
2 changed files with 35 additions and 6 deletions

View File

@ -98,6 +98,29 @@ func TestConfigParseUnknownFlags(t *testing.T) {
}
}
func TestConfigParseRuleError(t *testing.T) {
assert := assert.New(t)
// Rule without name
_, err := NewConfig([]string{
"--rule..action=auth",
})
if assert.Error(err) {
assert.Equal("route name is required", err.Error())
}
// Rule without value
c, err := NewConfig([]string{
"--rule.one.action=",
})
if assert.Error(err) {
assert.Equal("route param value is required", err.Error())
}
// Check rules
assert.Equal(map[string]*Rule{}, c.Rules)
}
func TestConfigFlagBackwardsCompatability(t *testing.T) {
assert := assert.New(t)
c, err := NewConfig([]string{