github.com/hellofresh/janus@v0.0.0-20230925145208-ce8de8183c67/pkg/middleware/debug_trace_test.go (about) 1 package middleware 2 3 import ( 4 "net/http" 5 "net/http/httptest" 6 "testing" 7 8 "github.com/magiconair/properties/assert" 9 "go.opencensus.io/plugin/ochttp/propagation/b3" 10 ) 11 12 func TestDebugTrace(t *testing.T) { 13 format := &b3.HTTPFormat{} 14 15 testHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {}) 16 17 tests := []struct { 18 testName string 19 debugHeader string 20 expectedTraceHeader bool 21 }{ 22 { 23 testName: "'X-Debug-Trace: secret-key' produces response debug header", 24 debugHeader: "secret-key", 25 expectedTraceHeader: true, 26 }, 27 { 28 testName: "'X-Debug-Trace: 0' does not produce response debug header", 29 debugHeader: "0", 30 expectedTraceHeader: false, 31 }, 32 { 33 testName: "'X-Debug-Trace: true' does not response debug header", 34 debugHeader: "true", 35 expectedTraceHeader: false, 36 }, 37 { 38 testName: "'X-Debug-Trace: ' does not produce response debug header", 39 debugHeader: "", 40 expectedTraceHeader: false, 41 }, 42 } 43 44 middleware := DebugTrace(format, "secret-key") 45 46 for _, test := range tests { 47 req, _ := http.NewRequest("GET", "http://hello-world", nil) 48 req.Header.Add("X-Debug-Trace", test.debugHeader) 49 50 rr := httptest.NewRecorder() 51 middleware(testHandler).ServeHTTP(rr, req) 52 hasDebugHeader := rr.Header().Get("X-Debug-Trace") != "" 53 assert.Equal(t, hasDebugHeader, test.expectedTraceHeader, test.testName) 54 } 55 }