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  }