From ae7d745d5e5c5ea9979b3192272127c98fa76eb6 Mon Sep 17 00:00:00 2001 From: Richard Michael Date: Fri, 22 Aug 2025 10:47:36 -0700 Subject: [PATCH] Ensure tests will always use the current client name and version --- client/src/lib/constants.ts | 8 ++++++++ client/src/lib/hooks/__tests__/useConnection.test.tsx | 6 +++--- client/src/lib/hooks/useConnection.ts | 9 ++------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/client/src/lib/constants.ts b/client/src/lib/constants.ts index 2e983302..8e4ff2b5 100644 --- a/client/src/lib/constants.ts +++ b/client/src/lib/constants.ts @@ -1,4 +1,12 @@ import { InspectorConfig } from "./configurationTypes"; +import packageJson from "../../package.json"; + +// Client identity for MCP connections +export const CLIENT_IDENTITY = (() => { + const [, name = packageJson.name] = packageJson.name.split("/"); + const version = packageJson.version; + return { name, version }; +})(); // OAuth-related session storage keys export const SESSION_KEYS = { diff --git a/client/src/lib/hooks/__tests__/useConnection.test.tsx b/client/src/lib/hooks/__tests__/useConnection.test.tsx index 3cf03784..10946416 100644 --- a/client/src/lib/hooks/__tests__/useConnection.test.tsx +++ b/client/src/lib/hooks/__tests__/useConnection.test.tsx @@ -2,7 +2,7 @@ import { renderHook, act } from "@testing-library/react"; import { useConnection } from "../useConnection"; import { z } from "zod"; import { ClientRequest } from "@modelcontextprotocol/sdk/types.js"; -import { DEFAULT_INSPECTOR_CONFIG } from "../../constants"; +import { DEFAULT_INSPECTOR_CONFIG, CLIENT_IDENTITY } from "../../constants"; import { SSEClientTransportOptions, SseError, @@ -247,8 +247,8 @@ describe("useConnection", () => { expect(Client).toHaveBeenCalledWith( expect.objectContaining({ - name: "inspector-client", - version: expect.any(String), + name: CLIENT_IDENTITY.name, + version: CLIENT_IDENTITY.version, }), expect.objectContaining({ capabilities: expect.objectContaining({ diff --git a/client/src/lib/hooks/useConnection.ts b/client/src/lib/hooks/useConnection.ts index 92029d2c..129cdd3e 100644 --- a/client/src/lib/hooks/useConnection.ts +++ b/client/src/lib/hooks/useConnection.ts @@ -35,7 +35,7 @@ import { RequestOptions } from "@modelcontextprotocol/sdk/shared/protocol.js"; import { useEffect, useState } from "react"; import { useToast } from "@/lib/hooks/useToast"; import { z } from "zod"; -import { ConnectionStatus } from "../constants"; +import { ConnectionStatus, CLIENT_IDENTITY } from "../constants"; import { Notification } from "../notificationTypes"; import { auth, @@ -47,7 +47,6 @@ import { saveClientInformationToSessionStorage, discoverScopes, } from "../auth"; -import packageJson from "../../../package.json"; import { getMCPProxyAddress, getMCPServerRequestMaxTotalTimeout, @@ -347,10 +346,6 @@ export function useConnection({ }; const connect = async (_e?: unknown, retryCount: number = 0) => { - const [, name = packageJson.name] = packageJson.name.split("/"); - const version = packageJson.version; - const clientIdentity = { name, version }; - const clientCapabilities = { capabilities: { sampling: {}, @@ -362,7 +357,7 @@ export function useConnection({ }; const client = new Client( - clientIdentity, + CLIENT_IDENTITY, clientCapabilities, );