fix: parse headers

This commit is contained in:
debugtalk
2021-09-30 11:03:31 +08:00
parent 9ef0885cca
commit 13f0ed2731
2 changed files with 35 additions and 8 deletions

View File

@@ -143,9 +143,9 @@ func TestParseDataMapWithVariables(t *testing.T) {
}{
{map[string]interface{}{"key": "$var1"}, map[string]interface{}{"key": "foo1"}},
{map[string]interface{}{"foo1": "$val1", "foo2": "bar2"}, map[string]interface{}{"foo1": 200, "foo2": "bar2"}},
// parse map key
// parse map key, key is string
{map[string]interface{}{"$var1": "$val1"}, map[string]interface{}{"foo1": 200}},
// map key is int
// parse map key, key is int
{map[string]interface{}{"$var2": "$val1"}, map[string]interface{}{"123": 200}},
}
@@ -155,3 +155,32 @@ func TestParseDataMapWithVariables(t *testing.T) {
}
}
}
func TestParseHeaders(t *testing.T) {
variablesMapping := map[string]interface{}{
"var1": "foo1",
"val1": 200,
"var2": 123, // key is int
"val2": nil, // value is nil
}
testData := []struct {
rawHeaders map[string]string
expectHeaders map[string]string
}{
{map[string]string{"key": "$var1"}, map[string]string{"key": "foo1"}},
{map[string]string{"foo1": "$val1", "foo2": "bar2"}, map[string]string{"foo1": "200", "foo2": "bar2"}},
// parse map key, key is string
{map[string]string{"$var1": "$val1"}, map[string]string{"foo1": "200"}},
// parse map key, key is int
{map[string]string{"$var2": "$val1"}, map[string]string{"123": "200"}},
// parse map key & value, key is int, value is nil
{map[string]string{"$var2": "$val2"}, map[string]string{"123": "<nil>"}},
}
for _, data := range testData {
if !assert.Equal(t, data.expectHeaders, parseHeaders(data.rawHeaders, variablesMapping)) {
t.Fail()
}
}
}