github.com/kamilsk/grafaman@v1.0.0-beta3.0.20201207211242-3e0d02dd84ce/internal/cnf/config_test.go (about) 1 package cnf_test 2 3 import ( 4 "testing" 5 6 "github.com/mitchellh/mapstructure" 7 "github.com/stretchr/testify/assert" 8 "github.com/stretchr/testify/require" 9 10 . "github.com/kamilsk/grafaman/internal/cnf" 11 "github.com/kamilsk/grafaman/internal/model" 12 ) 13 14 func TestConfig_FilterQuery(t *testing.T) { 15 tests := map[string]struct { 16 config map[string]interface{} 17 expected model.Query 18 }{ 19 "empty input": {expected: "*"}, 20 "with prefix only": { 21 config: map[string]interface{}{"metrics": "set"}, expected: "set.*", 22 }, 23 "with filter only": { 24 config: map[string]interface{}{"filter": "subset.*"}, expected: "subset.*", 25 }, 26 "full input": { 27 config: map[string]interface{}{"metrics": "set", "filter": "subset.*"}, expected: "set.subset.*", 28 }, 29 } 30 31 for name, test := range tests { 32 t.Run(name, func(t *testing.T) { 33 var config Config 34 require.NoError(t, mapstructure.Decode(test.config, &config)) 35 assert.Equal(t, test.expected, config.FilterQuery()) 36 }) 37 } 38 }