config/source/cli: fix default flag value loading (#1178)
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
@@ -6,10 +6,52 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/micro/cli/v2"
|
||||
"github.com/micro/go-micro/v2"
|
||||
"github.com/micro/go-micro/v2/config"
|
||||
"github.com/micro/go-micro/v2/config/cmd"
|
||||
"github.com/micro/go-micro/v2/config/source"
|
||||
)
|
||||
|
||||
func TestCliSourceDefault(t *testing.T) {
|
||||
const expVal string = "flagvalue"
|
||||
|
||||
service := micro.NewService(
|
||||
micro.Flags(
|
||||
// to be able to run insude go test
|
||||
&cli.StringFlag{
|
||||
Name: "test.timeout",
|
||||
},
|
||||
&cli.BoolFlag{
|
||||
Name: "test.v",
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "test.run",
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "flag",
|
||||
Usage: "It changes something",
|
||||
EnvVars: []string{"flag"},
|
||||
Value: expVal,
|
||||
},
|
||||
),
|
||||
)
|
||||
var cliSrc source.Source
|
||||
service.Init(
|
||||
// Loads CLI configuration
|
||||
micro.Action(func(c *cli.Context) error {
|
||||
cliSrc = NewSource(
|
||||
Context(c),
|
||||
)
|
||||
return nil
|
||||
}),
|
||||
)
|
||||
|
||||
config.Load(cliSrc)
|
||||
if fval := config.Get("flag").String("default"); fval != expVal {
|
||||
t.Fatalf("default flag value not loaded %v != %v", fval, expVal)
|
||||
}
|
||||
}
|
||||
|
||||
func test(t *testing.T, withContext bool) {
|
||||
var src source.Source
|
||||
|
||||
@@ -17,7 +59,11 @@ func test(t *testing.T, withContext bool) {
|
||||
app := cmd.App()
|
||||
app.Name = "testapp"
|
||||
app.Flags = []cli.Flag{
|
||||
&cli.StringFlag{Name: "db-host"},
|
||||
&cli.StringFlag{
|
||||
Name: "db-host",
|
||||
EnvVars: []string{"db-host"},
|
||||
Value: "myval",
|
||||
},
|
||||
}
|
||||
|
||||
// with context
|
||||
|
Reference in New Issue
Block a user