(t *testing.T)
| 11 | ) |
| 12 | |
| 13 | func TestHeaderInjection(t *testing.T) { |
| 14 | middleware := HTTPHeaderMiddleware{TargetHeaders: []string{"TestHeader1", "TestHeader2", "Test3"}} |
| 15 | ctx := context.Background() |
| 16 | h := http.Header{} |
| 17 | contentsMap := make(map[string]string) |
| 18 | contentsMap["TestHeader1"] = "RequestID" |
| 19 | contentsMap["TestHeader2"] = "ContentsOfTestHeader2" |
| 20 | contentsMap["Test3"] = "SomeInformation" |
| 21 | |
| 22 | h.Add("TestHeader1", contentsMap["TestHeader1"]) |
| 23 | h.Add("TestHeader2", contentsMap["TestHeader2"]) |
| 24 | h.Add("Test3", contentsMap["Test3"]) |
| 25 | |
| 26 | req := &http.Request{ |
| 27 | Method: "GET", |
| 28 | RequestURI: "/HTTPHeaderTest", |
| 29 | Body: http.NoBody, |
| 30 | Header: h, |
| 31 | } |
| 32 | |
| 33 | req = req.WithContext(ctx) |
| 34 | req = middleware.injectRequestContext(req) |
| 35 | |
| 36 | headerMap := requestmeta.MapFromContext(req.Context()) |
| 37 | require.NotNil(t, headerMap) |
| 38 | |
| 39 | for _, header := range middleware.TargetHeaders { |
| 40 | require.Equal(t, contentsMap[header], headerMap[header]) |
| 41 | } |
| 42 | for header, contents := range contentsMap { |
| 43 | require.Equal(t, contents, headerMap[header]) |
| 44 | } |
| 45 | } |
| 46 | |
| 47 | func TestExistingHeaderInContextIsNotOverridden(t *testing.T) { |
| 48 | middleware := HTTPHeaderMiddleware{TargetHeaders: []string{"TestHeader1", "TestHeader2", "Test3"}} |
nothing calls this directly
no test coverage detected