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 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 = {

View file

@ -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({

View file

@ -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<Request, Notification, Result>(
clientIdentity,
CLIENT_IDENTITY,
clientCapabilities,
);