@@ -24,17 +24,19 @@ function expectDefined<T>(arg: T): asserts arg is Exclude<T, undefined | null> {
2424describe ( "ToolBase" , ( ) => {
2525 let mockSession : Session ;
2626 let mockLogger : CompositeLogger ;
27+ let mockLoggerWarning : ReturnType < typeof vi . fn > ;
2728 let mockConfig : UserConfig ;
2829 let mockTelemetry : Telemetry ;
2930 let mockElicitation : Elicitation ;
3031 let mockRequestConfirmation : MockedFunction < ( message : string ) => Promise < boolean > > ;
3132 let testTool : TestTool ;
3233
3334 beforeEach ( ( ) => {
35+ mockLoggerWarning = vi . fn ( ) ;
3436 mockLogger = {
3537 info : vi . fn ( ) ,
3638 debug : vi . fn ( ) ,
37- warning : vi . fn ( ) ,
39+ warning : mockLoggerWarning ,
3840 error : vi . fn ( ) ,
3941 } as unknown as CompositeLogger ;
4042
@@ -266,12 +268,14 @@ describe("ToolBase", () => {
266268
267269 describe ( "appendUIResource" , ( ) => {
268270 let mockUIRegistry : UIRegistry ;
271+ let mockUIRegistryGet : ReturnType < typeof vi . fn > ;
269272 let toolWithUI : TestToolWithOutputSchema ;
270273 let mockCallback : ToolCallback < ( typeof toolWithUI ) [ "argsShape" ] > ;
271274
272275 beforeEach ( ( ) => {
276+ mockUIRegistryGet = vi . fn ( ) ;
273277 mockUIRegistry = {
274- get : vi . fn ( ) ,
278+ get : mockUIRegistryGet ,
275279 has : vi . fn ( ) ,
276280 getAvailableTools : vi . fn ( ) ,
277281 } as unknown as UIRegistry ;
@@ -332,7 +336,7 @@ describe("ToolBase", () => {
332336 const result = await mockCallback ( { input : "test" } , { } as never ) ;
333337
334338 expect ( result . content ) . toHaveLength ( 1 ) ;
335- expect ( mockUIRegistry . get ) . toHaveBeenCalledWith ( "test-tool-with-output-schema" ) ;
339+ expect ( mockUIRegistryGet ) . toHaveBeenCalledWith ( "test-tool-with-output-schema" ) ;
336340 } ) ;
337341
338342 it ( "should not append UIResource when structuredContent is missing" , async ( ) => {
@@ -346,7 +350,7 @@ describe("ToolBase", () => {
346350 ) ;
347351 ( mockUIRegistry . get as Mock ) . mockReturnValue ( "<html>test UI</html>" ) ;
348352
349- let noStructuredCallback : ToolCallback < ZodRawShape > ;
353+ let noStructuredCallback : ToolCallback < ZodRawShape > | undefined ;
350354 const mockServer = {
351355 mcpServer : {
352356 registerTool : (
@@ -361,7 +365,8 @@ describe("ToolBase", () => {
361365 } ;
362366 toolWithoutStructured . register ( mockServer as unknown as Server ) ;
363367
364- const result = await noStructuredCallback ! ( { input : "test" } , { } as never ) ;
368+ expectDefined ( noStructuredCallback ) ;
369+ const result = await noStructuredCallback ( { input : "test" } , { } as never ) ;
365370
366371 expect ( result . content ) . toHaveLength ( 1 ) ;
367372 expect ( result . structuredContent ) . toBeUndefined ( ) ;
@@ -378,7 +383,7 @@ describe("ToolBase", () => {
378383 ) ;
379384 ( mockUIRegistry . get as Mock ) . mockReturnValue ( "<html>test UI</html>" ) ;
380385
381- let invalidCallback : ToolCallback < ZodRawShape > ;
386+ let invalidCallback : ToolCallback < ZodRawShape > | undefined ;
382387 const mockServer = {
383388 mcpServer : {
384389 registerTool : (
@@ -393,10 +398,11 @@ describe("ToolBase", () => {
393398 } ;
394399 toolWithInvalidOutput . register ( mockServer as unknown as Server ) ;
395400
396- const result = await invalidCallback ! ( { input : "test" } , { } as never ) ;
401+ expectDefined ( invalidCallback ) ;
402+ const result = await invalidCallback ( { input : "test" } , { } as never ) ;
397403
398404 expect ( result . content ) . toHaveLength ( 1 ) ;
399- expect ( mockLogger . warning ) . toHaveBeenCalled ( ) ;
405+ expect ( mockLoggerWarning ) . toHaveBeenCalled ( ) ;
400406 } ) ;
401407
402408 it ( "should append UIResource correctly when all conditions are met" , async ( ) => {
0 commit comments