Improve auth docs and add finishAuth convenience method
This commit is contained in:
parent
44a440854f
commit
b1f4b65709
1 changed files with 47 additions and 19 deletions
|
|
@ -2,7 +2,7 @@ import { createServer, type IncomingMessage, type Server } from "http";
|
|||
import { AddressInfo } from "net";
|
||||
import { JSONRPCMessage } from "../types.js";
|
||||
import { SSEClientTransport } from "./sse.js";
|
||||
import { OAuthClientProvider, OAuthTokens } from "./auth.js";
|
||||
import { OAuthClientProvider, OAuthTokens, UnauthorizedError } from "./auth.js";
|
||||
|
||||
describe("SSEClientTransport", () => {
|
||||
let server: Server;
|
||||
|
|
@ -376,7 +376,7 @@ describe("SSEClientTransport", () => {
|
|||
authProvider: mockAuthProvider,
|
||||
});
|
||||
|
||||
await expect(() => transport.start()).rejects.toThrow("Unauthorized");
|
||||
await expect(() => transport.start()).rejects.toThrow(UnauthorizedError);
|
||||
expect(mockAuthProvider.redirectToAuthorization.mock.calls).toHaveLength(1);
|
||||
});
|
||||
|
||||
|
|
@ -431,7 +431,7 @@ describe("SSEClientTransport", () => {
|
|||
params: {},
|
||||
};
|
||||
|
||||
await expect(() => transport.send(message)).rejects.toThrow("Unauthorized");
|
||||
await expect(() => transport.send(message)).rejects.toThrow(UnauthorizedError);
|
||||
expect(mockAuthProvider.redirectToAuthorization.mock.calls).toHaveLength(1);
|
||||
});
|
||||
|
||||
|
|
@ -485,17 +485,17 @@ describe("SSEClientTransport", () => {
|
|||
let connectionAttempts = 0;
|
||||
server = createServer((req, res) => {
|
||||
lastServerRequest = req;
|
||||
|
||||
|
||||
if (req.url === "/token" && req.method === "POST") {
|
||||
// Handle token refresh request
|
||||
let body = "";
|
||||
req.on("data", chunk => { body += chunk; });
|
||||
req.on("end", () => {
|
||||
const params = new URLSearchParams(body);
|
||||
if (params.get("grant_type") === "refresh_token" &&
|
||||
params.get("refresh_token") === "refresh-token" &&
|
||||
params.get("client_id") === "test-client-id" &&
|
||||
params.get("client_secret") === "test-client-secret") {
|
||||
if (params.get("grant_type") === "refresh_token" &&
|
||||
params.get("refresh_token") === "refresh-token" &&
|
||||
params.get("client_id") === "test-client-id" &&
|
||||
params.get("client_secret") === "test-client-secret") {
|
||||
res.writeHead(200, { "Content-Type": "application/json" });
|
||||
res.end(JSON.stringify({
|
||||
access_token: "new-token",
|
||||
|
|
@ -583,10 +583,10 @@ describe("SSEClientTransport", () => {
|
|||
req.on("data", chunk => { body += chunk; });
|
||||
req.on("end", () => {
|
||||
const params = new URLSearchParams(body);
|
||||
if (params.get("grant_type") === "refresh_token" &&
|
||||
params.get("refresh_token") === "refresh-token" &&
|
||||
params.get("client_id") === "test-client-id" &&
|
||||
params.get("client_secret") === "test-client-secret") {
|
||||
if (params.get("grant_type") === "refresh_token" &&
|
||||
params.get("refresh_token") === "refresh-token" &&
|
||||
params.get("client_id") === "test-client-id" &&
|
||||
params.get("client_secret") === "test-client-secret") {
|
||||
res.writeHead(200, { "Content-Type": "application/json" });
|
||||
res.end(JSON.stringify({
|
||||
access_token: "new-token",
|
||||
|
|
@ -715,7 +715,7 @@ describe("SSEClientTransport", () => {
|
|||
authProvider: mockAuthProvider,
|
||||
});
|
||||
|
||||
await expect(transport.start()).rejects.toThrow("Unauthorized");
|
||||
await expect(() => transport.start()).rejects.toThrow(UnauthorizedError);
|
||||
expect(mockAuthProvider.redirectToAuthorization).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue