From 28131fed03c29bb95c0478c8a5bfe6882054ab60 Mon Sep 17 00:00:00 2001 From: Danny Avila Date: Mon, 27 Jul 2026 08:24:13 -0400 Subject: [PATCH] test: teach MCP hook mocks about useMCPServerNames Three specs mock ~/hooks/MCP with a hand-listed factory, so adding the hook to ToolCall made useMCPServerNames undefined under test and every render threw. Returns a stable array so the mock cannot perturb render counts. --- .../__tests__/ContentParts.integration.test.tsx | 12 ++++++++---- .../Messages/Content/__tests__/ToolCall.test.tsx | 10 +++++++--- .../Content/__tests__/ToolCallGroup.test.tsx | 10 +++++++--- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/client/src/components/Chat/Messages/Content/__tests__/ContentParts.integration.test.tsx b/client/src/components/Chat/Messages/Content/__tests__/ContentParts.integration.test.tsx index 555bf7c4f6..050804db0a 100644 --- a/client/src/components/Chat/Messages/Content/__tests__/ContentParts.integration.test.tsx +++ b/client/src/components/Chat/Messages/Content/__tests__/ContentParts.integration.test.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { RecoilRoot } from 'recoil'; import { ContentTypes } from 'librechat-data-provider'; -import type { TAttachment, TMessageContentParts } from 'librechat-data-provider'; import { fireEvent, render, screen } from '@testing-library/react'; +import type { TAttachment, TMessageContentParts } from 'librechat-data-provider'; import ContentParts from '../ContentParts'; jest.mock('~/hooks', () => ({ @@ -20,9 +20,13 @@ jest.mock('~/hooks', () => ({ scheduleMessageContentLayoutReconcile: jest.fn(() => jest.fn()), })); -jest.mock('~/hooks/MCP', () => ({ - useMCPIconMap: () => new Map(), -})); +jest.mock('~/hooks/MCP', () => { + const mcpServerNames: string[] = []; + return { + useMCPIconMap: () => new Map(), + useMCPServerNames: () => mcpServerNames, + }; +}); jest.mock('../ToolOutput', () => ({ StackedToolIcons: () => , diff --git a/client/src/components/Chat/Messages/Content/__tests__/ToolCall.test.tsx b/client/src/components/Chat/Messages/Content/__tests__/ToolCall.test.tsx index 81622392a3..1e9bd72273 100644 --- a/client/src/components/Chat/Messages/Content/__tests__/ToolCall.test.tsx +++ b/client/src/components/Chat/Messages/Content/__tests__/ToolCall.test.tsx @@ -33,9 +33,13 @@ jest.mock('~/hooks', () => ({ }), })); -jest.mock('~/hooks/MCP', () => ({ - useMCPIconMap: () => new Map(), -})); +jest.mock('~/hooks/MCP', () => { + const mcpServerNames: string[] = []; + return { + useMCPIconMap: () => new Map(), + useMCPServerNames: () => mcpServerNames, + }; +}); jest.mock('~/components/Chat/Messages/Content/MessageContent', () => ({ __esModule: true, diff --git a/client/src/components/Chat/Messages/Content/__tests__/ToolCallGroup.test.tsx b/client/src/components/Chat/Messages/Content/__tests__/ToolCallGroup.test.tsx index 10d61e4482..2328d916f5 100644 --- a/client/src/components/Chat/Messages/Content/__tests__/ToolCallGroup.test.tsx +++ b/client/src/components/Chat/Messages/Content/__tests__/ToolCallGroup.test.tsx @@ -32,9 +32,13 @@ jest.mock('~/hooks', () => ({ scheduleMessageContentLayoutReconcile: jest.fn(() => jest.fn()), })); -jest.mock('~/hooks/MCP', () => ({ - useMCPIconMap: () => new Map(), -})); +jest.mock('~/hooks/MCP', () => { + const mcpServerNames: string[] = []; + return { + useMCPIconMap: () => new Map(), + useMCPServerNames: () => mcpServerNames, + }; +}); jest.mock('../ToolOutput', () => ({ StackedToolIcons: ({ toolNames }: { toolNames: string[] }) => (