config/source/cli: fix default flag value loading (#1178)

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
2020-02-08 02:14:34 +03:00
committed by GitHub
parent 99807a680c
commit 0bf6c9fc08
2 changed files with 53 additions and 8 deletions

View File

@@ -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