mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
	
	
		
			61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
		
		
			
		
	
	
			61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
|  | package datasources | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"encoding/json" | ||
|  | 	"testing" | ||
|  | 
 | ||
|  | 	"github.com/stretchr/testify/assert" | ||
|  | 	"github.com/stretchr/testify/require" | ||
|  | 
 | ||
|  | 	"github.com/grafana/grafana/pkg/components/simplejson" | ||
|  | ) | ||
|  | 
 | ||
|  | func TestAllowedCookies(t *testing.T) { | ||
|  | 	testCases := []struct { | ||
|  | 		desc  string | ||
|  | 		given map[string]interface{} | ||
|  | 		want  []string | ||
|  | 	}{ | ||
|  | 		{ | ||
|  | 			desc: "Usual json data with keepCookies", | ||
|  | 			given: map[string]interface{}{ | ||
|  | 				"keepCookies": []string{"cookie2"}, | ||
|  | 			}, | ||
|  | 			want: []string{"cookie2"}, | ||
|  | 		}, | ||
|  | 		{ | ||
|  | 			desc: "Usual json data without kepCookies", | ||
|  | 			given: map[string]interface{}{ | ||
|  | 				"something": "somethingelse", | ||
|  | 			}, | ||
|  | 			want: []string(nil), | ||
|  | 		}, | ||
|  | 		{ | ||
|  | 			desc: "Usual json data that has multiple values in keepCookies", | ||
|  | 			given: map[string]interface{}{ | ||
|  | 				"keepCookies": []string{"cookie1", "cookie2", "special[]"}, | ||
|  | 			}, | ||
|  | 			want: []string{"cookie1", "cookie2", "special[]"}, | ||
|  | 		}, | ||
|  | 	} | ||
|  | 
 | ||
|  | 	for _, test := range testCases { | ||
|  | 		t.Run(test.desc, func(t *testing.T) { | ||
|  | 			jsonDataBytes, err := json.Marshal(&test.given) | ||
|  | 			require.NoError(t, err) | ||
|  | 			jsonData, err := simplejson.NewJson(jsonDataBytes) | ||
|  | 			require.NoError(t, err) | ||
|  | 
 | ||
|  | 			ds := DataSource{ | ||
|  | 				ID:       1235, | ||
|  | 				JsonData: jsonData, | ||
|  | 				UID:      "test", | ||
|  | 			} | ||
|  | 
 | ||
|  | 			actual := ds.AllowedCookies() | ||
|  | 			assert.Equal(t, test.want, actual) | ||
|  | 			assert.EqualValues(t, test.want, actual) | ||
|  | 		}) | ||
|  | 	} | ||
|  | } |