@@ -32,7 +32,7 @@ import (
3232 "github.com/envoyproxy/ai-gateway/internal/internalapi"
3333 "github.com/envoyproxy/ai-gateway/internal/metrics"
3434 "github.com/envoyproxy/ai-gateway/internal/testing/testotel"
35- tracing "github.com/envoyproxy/ai-gateway/internal/tracing"
35+ "github.com/envoyproxy/ai-gateway/internal/tracing"
3636 tracingapi "github.com/envoyproxy/ai-gateway/internal/tracing/api"
3737)
3838
@@ -164,6 +164,15 @@ func TestServePOST_InvalidSessionID(t *testing.T) {
164164 require .Contains (t , rr .Body .String (), "invalid session ID" )
165165}
166166
167+ func TestServePOST_MissingSessionID (t * testing.T ) {
168+ proxy := newTestMCPProxy ()
169+ req := httptest .NewRequest (http .MethodPost , "/mcp" , strings .NewReader (`{"jsonrpc":"2.0","method":"tools/call","params":{"name":"test-tool"},"id":"1"}` ))
170+ rr := httptest .NewRecorder ()
171+ proxy .servePOST (rr , req )
172+ require .Equal (t , http .StatusBadRequest , rr .Code )
173+ require .Contains (t , rr .Body .String (), "missing session ID" )
174+ }
175+
167176func TestServePOST_InitializeRequest (t * testing.T ) {
168177 // Create a test server to simulate the mcp backend listener.
169178 testServer := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
@@ -611,6 +620,7 @@ func TestServePOST_UnsupportedMethod(t *testing.T) {
611620 require .NoError (t , err )
612621
613622 httpReq := httptest .NewRequest (http .MethodPost , "/mcp" , bytes .NewReader (body ))
623+ httpReq .Header .Set (sessionIDHeader , secureID (t , proxy , "test-route@@backend1:dGVzdC1zZXNzaW9u" )) // "test-session" base64 encoded.
614624 rr := httptest .NewRecorder ()
615625
616626 proxy .servePOST (rr , httpReq )
@@ -803,6 +813,7 @@ func TestServePOST_NotificationsInitialized(t *testing.T) {
803813 require .NoError (t , err )
804814
805815 httpReq := httptest .NewRequest (http .MethodPost , "/mcp" , bytes .NewReader (body ))
816+ httpReq .Header .Set (sessionIDHeader , secureID (t , proxy , "test-route@@backend1:dGVzdC1zZXNzaW9u" )) // "test-session" base64 encoded.
806817 rr := httptest .NewRecorder ()
807818
808819 proxy .servePOST (rr , httpReq )
@@ -883,6 +894,7 @@ func TestServePOST_InvalidPromptsGetParams(t *testing.T) {
883894 require .NoError (t , err )
884895
885896 httpReq := httptest .NewRequest (http .MethodPost , "/mcp" , bytes .NewReader (body ))
897+ httpReq .Header .Set (sessionIDHeader , secureID (t , proxy , "test-route@@backend1:dGVzdC1zZXNzaW9u" )) // "test-session" base64 encoded.
886898 rr := httptest .NewRecorder ()
887899
888900 proxy .servePOST (rr , httpReq )
0 commit comments