diff --git a/src/client/sse.test.ts b/src/client/sse.test.ts index b55c7e78..7b137e82 100644 --- a/src/client/sse.test.ts +++ b/src/client/sse.test.ts @@ -68,71 +68,6 @@ describe("SSEClientTransport", () => { }); describe("connection handling", () => { - it("maintains custom path when constructing endpoint URL", async () => { - // Create a URL with a custom path - const customPathUrl = new URL("/custom/path/sse", baseUrl); - transport = new SSEClientTransport(customPathUrl); - - // Start the transport - await transport.start(); - - // Send a test message to verify the endpoint URL - const message: JSONRPCMessage = { - jsonrpc: "2.0", - id: "test-1", - method: "test", - params: {} - }; - - await transport.send(message); - - // Verify the POST request maintains the custom path - expect(lastServerRequest.url).toBe("/custom/path/sse"); - }); - - it("handles multiple levels of custom paths", async () => { - // Test with a deeper nested path - const nestedPathUrl = new URL("/api/v1/custom/deep/path/sse", baseUrl); - transport = new SSEClientTransport(nestedPathUrl); - - await transport.start(); - - const message: JSONRPCMessage = { - jsonrpc: "2.0", - id: "test-1", - method: "test", - params: {} - }; - - await transport.send(message); - - // Verify the POST request maintains the full custom path - expect(lastServerRequest.url).toBe("/api/v1/custom/deep/path/sse"); - }); - - it("maintains custom path for SSE connection", async () => { - const customPathUrl = new URL("/custom/path/sse", baseUrl); - transport = new SSEClientTransport(customPathUrl); - await transport.start(); - expect(lastServerRequest.url).toBe("/custom/path/sse"); - }); - - it("handles URLs with query parameters", async () => { - const urlWithQuery = new URL("/custom/path/sse?param=value", baseUrl); - transport = new SSEClientTransport(urlWithQuery); - await transport.start(); - - const message: JSONRPCMessage = { - jsonrpc: "2.0", - id: "test-1", - method: "test", - params: {} - }; - - await transport.send(message); - expect(lastServerRequest.url).toBe("/custom/path/sse"); - }); - it("establishes SSE connection and receives endpoint", async () => { transport = new SSEClientTransport(baseUrl); await transport.start(); diff --git a/src/client/sse.ts b/src/client/sse.ts index 755f5da7..5e9f0cf0 100644 --- a/src/client/sse.ts +++ b/src/client/sse.ts @@ -143,12 +143,7 @@ export class SSEClientTransport implements Transport { const messageEvent = event as MessageEvent; try { - // Use the original URL as the base to resolve the received endpoint this._endpoint = new URL(messageEvent.data, this._url); - - // If the original URL had a custom path, preserve it in the endpoint URL - this._endpoint.pathname = this._url.pathname; - if (this._endpoint.origin !== this._url.origin) { throw new Error( `Endpoint origin does not match connection origin: ${this._endpoint.origin}`,