Skip to content

Commit 3e2dd35

Browse files
committed
Fix tests
1 parent 9262151 commit 3e2dd35

File tree

6 files changed

+26
-16
lines changed

6 files changed

+26
-16
lines changed

jest.config.js

+4
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ export default {
77
...defaultEsmPreset,
88
moduleNameMapper: {
99
"^(\\.{1,2}/.*)\\.js$": "$1",
10+
"^pkce-challenge$": "<rootDir>/src/__mocks__/pkce-challenge.ts"
1011
},
12+
transformIgnorePatterns: [
13+
"/node_modules/(?!eventsource)/"
14+
],
1115
testPathIgnorePatterns: ["/node_modules/", "/dist/"],
1216
};

src/__mocks__/pkce-challenge.ts

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export default function pkceChallenge() {
2+
return {
3+
code_verifier: "test_verifier",
4+
code_challenge: "test_challenge",
5+
};
6+
}

src/client/auth.test.ts

+7-13
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,6 @@ import {
66
registerClient,
77
} from "./auth.js";
88

9-
// Mock pkce-challenge
10-
jest.mock("pkce-challenge", () => ({
11-
__esModule: true,
12-
default: () => ({
13-
code_verifier: "test_verifier",
14-
code_challenge: "test_challenge",
15-
}),
16-
}));
179

1810
// Mock fetch globally
1911
const mockFetch = jest.fn();
@@ -43,11 +35,13 @@ describe("OAuth Authorization", () => {
4335

4436
const metadata = await discoverOAuthMetadata("https://auth.example.com");
4537
expect(metadata).toEqual(validMetadata);
46-
expect(mockFetch).toHaveBeenCalledWith(
47-
expect.objectContaining({
48-
href: "https://auth.example.com/.well-known/oauth-authorization-server",
49-
})
50-
);
38+
const calls = mockFetch.mock.calls;
39+
expect(calls.length).toBe(1);
40+
const [url, options] = calls[0];
41+
expect(url.toString()).toBe("https://auth.example.com/.well-known/oauth-authorization-server");
42+
expect(options.headers).toEqual({
43+
"MCP-Protocol-Version": "2024-11-05"
44+
});
5145
});
5246

5347
it("returns undefined when discovery endpoint returns 404", async () => {

src/client/sse.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,13 @@ export class SSEClientTransport implements Transport {
105105
this._eventSource = new EventSource(
106106
this._url.href,
107107
this._eventSourceInit ?? {
108-
fetch: (url, init) => this._commonHeaders().then((headers) => fetch(url, { ...init, headers })),
108+
fetch: (url, init) => this._commonHeaders().then((headers) => fetch(url, {
109+
...init,
110+
headers: {
111+
...headers,
112+
Accept: "text/event-stream"
113+
}
114+
})),
109115
},
110116
);
111117
this._abortController = new AbortController();

tsconfig.cjs.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
"moduleResolution": "node",
66
"outDir": "./dist/cjs"
77
},
8-
"exclude": ["**/*.test.ts"]
8+
"exclude": ["**/*.test.ts", "src/__mocks__/**/*"]
99
}

tsconfig.prod.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
"compilerOptions": {
44
"outDir": "./dist/esm"
55
},
6-
"exclude": ["**/*.test.ts"]
6+
"exclude": ["**/*.test.ts", "src/__mocks__/**/*"]
77
}

0 commit comments

Comments
 (0)