(
body: unknown
)
| 587 | |
| 588 | describe("resolveOAuthScope", () => { |
| 589 | async function startMetadataServer( |
| 590 | body: unknown |
| 591 | ): Promise<{ url: URL; close: () => Promise<void> }> { |
| 592 | const server = createServer((_req, res) => { |
| 593 | res.setHeader("Content-Type", "application/json"); |
| 594 | res.end(JSON.stringify(body)); |
| 595 | }); |
| 596 | await new Promise<void>((resolve) => server.listen(0, "127.0.0.1", resolve)); |
| 597 | const address = server.address(); |
| 598 | if (!address || typeof address === "string") { |
| 599 | throw new Error("Failed to bind metadata server"); |
| 600 | } |
| 601 | return { |
| 602 | url: new URL(`http://127.0.0.1:${address.port}/.well-known/oauth-protected-resource`), |
| 603 | close: () => new Promise<void>((resolve) => server.close(() => resolve())), |
| 604 | }; |
| 605 | } |
| 606 | |
| 607 | test("uses the challenge scope when present", async () => { |
| 608 | expect(await resolveOAuthScope({ raw: "", scope: "mcp.read" })).toBe("mcp.read"); |
no test coverage detected