This commit is contained in:
parent
98be07131b
commit
eea9593ad5
1
cli.go
1
cli.go
@ -313,6 +313,7 @@ func (c *Command) addFlag(value reflect.Value, field reflect.StructField) error
|
|||||||
return ErrInternalError
|
return ErrInternalError
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
kind := value.Kind()
|
kind := value.Kind()
|
||||||
|
18
cli_test.go
18
cli_test.go
@ -17,6 +17,7 @@ package config
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
|
"log/slog"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
"testing"
|
"testing"
|
||||||
@ -299,3 +300,20 @@ func TestDurationWithEqual(t *testing.T) {
|
|||||||
assert.NoError(cmd.Parse(cmd.Args))
|
assert.NoError(cmd.Parse(cmd.Args))
|
||||||
assert.Equal(time.Second*5, conf.interval)
|
assert.Equal(time.Second*5, conf.interval)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestLogLevel(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
var conf struct {
|
||||||
|
Level slog.Level `cli:"log-level" default:"INFO"`
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd := NewCLI("Config")
|
||||||
|
assert.NoError(cmd.Init(&conf), "init config command")
|
||||||
|
|
||||||
|
args := []string{"-v", "-log-level", "DEBUG", "help"}
|
||||||
|
|
||||||
|
assert.ElementsMatch([]string{"-v", "help"}, cmd.Capture(args))
|
||||||
|
assert.ElementsMatch([]string{"-log-level", "DEBUG"}, cmd.Args)
|
||||||
|
assert.NoError(cmd.Parse(cmd.Args))
|
||||||
|
assert.Equal(slog.LevelDebug, conf.Level)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user