2
0

Исправлено повторное определение флага.
Some checks failed
test / test (push) Has been cancelled

This commit is contained in:
Алексей Бадяев 2024-10-24 17:58:16 +07:00
parent 98be07131b
commit eea9593ad5
Signed by: alexey
GPG Key ID: 686FBC1363E4AFAE
2 changed files with 19 additions and 0 deletions

1
cli.go
View File

@ -313,6 +313,7 @@ func (c *Command) addFlag(value reflect.Value, field reflect.StructField) error
return ErrInternalError
},
)
return nil
}
kind := value.Kind()

View File

@ -17,6 +17,7 @@ package config
import (
"flag"
"log/slog"
"os"
"strconv"
"testing"
@ -299,3 +300,20 @@ func TestDurationWithEqual(t *testing.T) {
assert.NoError(cmd.Parse(cmd.Args))
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)
}