@@ -2,65 +2,73 @@ import { describe, expect, it, vi } from "vitest";
22
33import { executeSlashCommand } from "../../src/ui/commands.js" ;
44
5- function makeContext ( overrides : Record < string , unknown > = { } ) {
5+ function makeContext (
6+ harnessOverrides : Record < string , unknown > = { } ,
7+ uiOverrides : Record < string , unknown > = { } ,
8+ ) {
69 return {
7- agent : { reset : vi . fn ( ) , state : { messages : [ ] } } ,
8- sessionManager : { trySaveSession : vi . fn ( ) , createSession : vi . fn ( ) , persistEmptySession : vi . fn ( ) , getCurrentSessionId : ( ) => null } ,
9- memoryManager : { } ,
10- driverRegistry : { } ,
11- toolRegistry : { } ,
12- skillManager : { } ,
13- permissionManager : { } ,
14- contextManager : { } ,
15- config : { } ,
16- onSetModel : vi . fn ( ) ,
17- onSetThinking : vi . fn ( ) ,
18- onSetCwd : vi . fn ( ) ,
19- ...overrides ,
10+ harness : {
11+ agent : { reset : vi . fn ( ) , state : { messages : [ ] } } ,
12+ sessionManager : { trySaveSession : vi . fn ( ) , createSession : vi . fn ( ) , persistEmptySession : vi . fn ( ) , getCurrentSessionId : ( ) => null } ,
13+ memoryManager : { } ,
14+ driverRegistry : { } ,
15+ toolRegistry : { } ,
16+ skillManager : { } ,
17+ permissionManager : { } ,
18+ contextManager : { } ,
19+ config : { } ,
20+ onSetModel : vi . fn ( ) ,
21+ onSetThinking : vi . fn ( ) ,
22+ onSetCwd : vi . fn ( ) ,
23+ ...harnessOverrides ,
24+ } ,
25+ ui : {
26+ addInfo : vi . fn ( ) ,
27+ addError : vi . fn ( ) ,
28+ ...uiOverrides ,
29+ } ,
2030 } as any ;
2131}
2232
2333describe ( "slash commands" , ( ) => {
2434 it ( "opens the MCP browser when MCP servers are available" , async ( ) => {
2535 const openMcpBrowser = vi . fn ( ) ;
26- const addInfo = vi . fn ( ) ;
27- const addError = vi . fn ( ) ;
2836
2937 executeSlashCommand (
3038 "/mcp" ,
31- makeContext ( {
32- mcpManager : {
33- getStates : ( ) => [ { config : { name : "github" } , status : "connected" , toolCount : 2 } ] ,
39+ makeContext (
40+ {
41+ mcpManager : {
42+ getStates : ( ) => [ { config : { name : "github" } , status : "connected" , toolCount : 2 } ] ,
43+ } ,
3444 } ,
35- } ) ,
36- { openMcpBrowser , addInfo , addError } as any ,
45+ { openMcpBrowser } ,
46+ ) ,
3747 ) ;
3848
3949 await Promise . resolve ( ) ;
4050
4151 expect ( openMcpBrowser ) . toHaveBeenCalledOnce ( ) ;
42- expect ( addInfo ) . not . toHaveBeenCalled ( ) ;
43- expect ( addError ) . not . toHaveBeenCalled ( ) ;
4452 } ) ;
4553
4654 it ( "shows an info message when no MCP servers are configured" , async ( ) => {
47- const openMcpBrowser = vi . fn ( ) ;
4855 const addInfo = vi . fn ( ) ;
4956 const addError = vi . fn ( ) ;
5057
5158 executeSlashCommand (
5259 "/mcp" ,
53- makeContext ( {
54- mcpManager : {
55- getStates : ( ) => [ ] ,
60+ makeContext (
61+ {
62+ mcpManager : {
63+ getStates : ( ) => [ ] ,
64+ } ,
5665 } ,
57- } ) ,
58- { openMcpBrowser , addInfo , addError } as any ,
66+ { addInfo , addError } ,
67+ ) ,
5968 ) ;
6069
6170 await Promise . resolve ( ) ;
6271
63- expect ( openMcpBrowser ) . not . toHaveBeenCalled ( ) ;
6472 expect ( addInfo ) . toHaveBeenCalledWith ( "No MCP servers configured." ) ;
6573 expect ( addError ) . not . toHaveBeenCalled ( ) ;
6674 } ) ;
@@ -72,8 +80,10 @@ describe("slash commands", () => {
7280
7381 executeSlashCommand (
7482 "/reset" ,
75- makeContext ( { agent : { reset, state : { messages : [ ] } } } ) ,
76- { clearConversationView, addInfo, addError : vi . fn ( ) } as any ,
83+ makeContext (
84+ { agent : { reset, state : { messages : [ ] } } } ,
85+ { clearConversationView, addInfo } ,
86+ ) ,
7787 ) ;
7888
7989 await Promise . resolve ( ) ;
0 commit comments