Ensure tests will always use the current client name and version

This commit is contained in:
Richard Michael 2025-08-22 10:47:36 -07:00
commit ae7d745d5e
3 changed files with 13 additions and 10 deletions

View file

@ -1,4 +1,12 @@
import { InspectorConfig } from "./configurationTypes"; 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 // OAuth-related session storage keys
export const SESSION_KEYS = { export const SESSION_KEYS = {

View file

@ -2,7 +2,7 @@ import { renderHook, act } from "@testing-library/react";
import { useConnection } from "../useConnection"; import { useConnection } from "../useConnection";
import { z } from "zod"; import { z } from "zod";
import { ClientRequest } from "@modelcontextprotocol/sdk/types.js"; import { ClientRequest } from "@modelcontextprotocol/sdk/types.js";
import { DEFAULT_INSPECTOR_CONFIG } from "../../constants"; import { DEFAULT_INSPECTOR_CONFIG, CLIENT_IDENTITY } from "../../constants";
import { import {
SSEClientTransportOptions, SSEClientTransportOptions,
SseError, SseError,
@ -247,8 +247,8 @@ describe("useConnection", () => {
expect(Client).toHaveBeenCalledWith( expect(Client).toHaveBeenCalledWith(
expect.objectContaining({ expect.objectContaining({
name: "inspector-client", name: CLIENT_IDENTITY.name,
version: expect.any(String), version: CLIENT_IDENTITY.version,
}), }),
expect.objectContaining({ expect.objectContaining({
capabilities: expect.objectContaining({ capabilities: expect.objectContaining({

View file

@ -35,7 +35,7 @@ import { RequestOptions } from "@modelcontextprotocol/sdk/shared/protocol.js";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { useToast } from "@/lib/hooks/useToast"; import { useToast } from "@/lib/hooks/useToast";
import { z } from "zod"; import { z } from "zod";
import { ConnectionStatus } from "../constants"; import { ConnectionStatus, CLIENT_IDENTITY } from "../constants";
import { Notification } from "../notificationTypes"; import { Notification } from "../notificationTypes";
import { import {
auth, auth,
@ -47,7 +47,6 @@ import {
saveClientInformationToSessionStorage, saveClientInformationToSessionStorage,
discoverScopes, discoverScopes,
} from "../auth"; } from "../auth";
import packageJson from "../../../package.json";
import { import {
getMCPProxyAddress, getMCPProxyAddress,
getMCPServerRequestMaxTotalTimeout, getMCPServerRequestMaxTotalTimeout,
@ -347,10 +346,6 @@ export function useConnection({
}; };
const connect = async (_e?: unknown, retryCount: number = 0) => { 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 = { const clientCapabilities = {
capabilities: { capabilities: {
sampling: {}, sampling: {},
@ -362,7 +357,7 @@ export function useConnection({
}; };
const client = new Client<Request, Notification, Result>( const client = new Client<Request, Notification, Result>(
clientIdentity, CLIENT_IDENTITY,
clientCapabilities, clientCapabilities,
); );