131 lines
2.2 KiB
Go
131 lines
2.2 KiB
Go
package launcher
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
|
|
"github.com/influxdata/influxdb/v2"
|
|
"github.com/influxdata/influxdb/v2/kit/cli"
|
|
"github.com/stretchr/testify/require"
|
|
"go.uber.org/zap/zapcore"
|
|
)
|
|
|
|
// Pretend we've already used cobra/viper to write
|
|
// values into these vars.
|
|
var stringVar = "string-value"
|
|
var intVar = 12344
|
|
var boolVar = false
|
|
var floatVar = 987.654
|
|
var sliceVar = []string{"hello", "world"}
|
|
var mapVar = map[string]string{"foo": "bar", "baz": "qux"}
|
|
var levelVar = zapcore.InfoLevel
|
|
var idVar, _ = influxdb.IDFromString("020f755c3c082000")
|
|
|
|
var opts = []cli.Opt{
|
|
{
|
|
DestP: &stringVar,
|
|
Flag: "string-var",
|
|
},
|
|
{
|
|
DestP: &intVar,
|
|
Flag: "int-var",
|
|
},
|
|
{
|
|
DestP: &boolVar,
|
|
Flag: "bool-var",
|
|
},
|
|
{
|
|
DestP: &floatVar,
|
|
Flag: "float-var",
|
|
},
|
|
{
|
|
DestP: &sliceVar,
|
|
Flag: "slice-var",
|
|
},
|
|
{
|
|
DestP: &mapVar,
|
|
Flag: "map-var",
|
|
},
|
|
{
|
|
DestP: &levelVar,
|
|
Flag: "level-var",
|
|
},
|
|
{
|
|
DestP: &idVar,
|
|
Flag: "id-var",
|
|
},
|
|
}
|
|
|
|
func Test_printAllConfig(t *testing.T) {
|
|
var out bytes.Buffer
|
|
require.NoError(t, printAllConfigRunE(opts, &out))
|
|
|
|
expected := `bool-var: false
|
|
float-var: 987.654
|
|
id-var: 020f755c3c082000
|
|
int-var: 12344
|
|
level-var: info
|
|
map-var:
|
|
baz: qux
|
|
foo: bar
|
|
slice-var:
|
|
- hello
|
|
- world
|
|
string-var: string-value
|
|
`
|
|
|
|
require.Equal(t, expected, out.String())
|
|
}
|
|
|
|
func Test_printOneConfig(t *testing.T) {
|
|
testCases := []struct {
|
|
key string
|
|
expected string
|
|
}{
|
|
{
|
|
key: "bool-var",
|
|
expected: "false",
|
|
},
|
|
{
|
|
key: "float-var",
|
|
expected: "987.654",
|
|
},
|
|
{
|
|
key: "id-var",
|
|
expected: "020f755c3c082000",
|
|
},
|
|
{
|
|
key: "level-var",
|
|
expected: "info",
|
|
},
|
|
{
|
|
key: "map-var",
|
|
expected: `baz: qux
|
|
foo: bar`,
|
|
},
|
|
{
|
|
key: "slice-var",
|
|
expected: `- hello
|
|
- world`,
|
|
},
|
|
{
|
|
key: "string-var",
|
|
expected: "string-value",
|
|
},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
t.Run(tc.key, func(t *testing.T) {
|
|
var out bytes.Buffer
|
|
require.NoError(t, printOneConfigRunE(opts, tc.key, &out))
|
|
require.Equal(t, tc.expected+"\n", out.String())
|
|
})
|
|
}
|
|
|
|
t.Run("bad-key", func(t *testing.T) {
|
|
var out bytes.Buffer
|
|
require.Error(t, printOneConfigRunE(opts, "bad-key", &out))
|
|
require.Empty(t, out.String())
|
|
})
|
|
}
|