Skip to content

Commit 0573e9c

Browse files
Fix missing handler headers in resp (#26)
1 parent 79a4012 commit 0573e9c

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

local/core.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ func CoreProcessing(httpResp http.ResponseWriter, httpReq *http.Request, handler
8888

8989
InjectEgressHeaders(httpResp)
9090

91-
// Exeute generated by subrt layer
91+
core.SetHeaders(recorderResp.Header, httpResp.Header())
9292

9393
core.HydrateHTTPResponse(httpResp, responseBody, coreResp.StatusCode)
9494
}

local/server_test.go

+23
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package local_test
33
import (
44
"fmt"
55
"io"
6+
"math/rand"
67
"net/http"
78
"net/http/httputil"
89
"testing"
@@ -16,9 +17,15 @@ import (
1617
func TestServSimpleResponse(t *testing.T) {
1718
t.Parallel()
1819

20+
rand.Seed(time.Now().UnixNano())
21+
1922
const testingMessage = "simple test"
2023

24+
randHeaderKey := randStringRunes(t, 32)
25+
randHeaderVal := randStringRunes(t, 32)
26+
2127
handler := func(w http.ResponseWriter, r *http.Request) {
28+
w.Header().Add(randHeaderKey, randHeaderVal)
2229
_, _ = w.Write([]byte(testingMessage))
2330

2431
assert.NotEmpty(t, r)
@@ -54,6 +61,7 @@ func TestServSimpleResponse(t *testing.T) {
5461
assert.NotEmpty(t, resp.Header.Get("X-Envoy-External-Address"))
5562
assert.Equal(t, "Content-Type", resp.Header.Get("Access-Control-Allow-Headers"))
5663
assert.Equal(t, fmt.Sprintf("%d", (len(testingMessage))), resp.Header.Get("Content-Length"))
64+
assert.Equal(t, randHeaderVal, resp.Header.Get(randHeaderKey))
5765

5866
bodyBytes, err := io.ReadAll(resp.Body)
5967
assert.NoError(t, err)
@@ -95,3 +103,18 @@ func TestServDumpResponse(t *testing.T) {
95103
assert.Contains(t, respStr, "X-Forwarded-Proto: http")
96104
assert.Contains(t, respStr, "X-Request-Id")
97105
}
106+
107+
var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
108+
109+
//nolint:gosec
110+
func randStringRunes(t *testing.T, n int) string {
111+
t.Helper()
112+
113+
b := make([]rune, n)
114+
115+
for i := range b {
116+
b[i] = letterRunes[rand.Intn(len(letterRunes))]
117+
}
118+
119+
return string(b)
120+
}

0 commit comments

Comments
 (0)