@@ -15,6 +15,32 @@ vi.mock("vscode", () => ({
1515vi . mock ( "../../../shared/modes" , ( ) => ( {
1616 getModeBySlug : vi . fn ( ) ,
1717 defaultModeSlug : "ask" ,
18+ modes : [
19+ {
20+ slug : "code" ,
21+ name : "Code Mode" ,
22+ roleDefinition : "Test role definition" ,
23+ groups : [ "command" , "read" , "edit" ] ,
24+ } ,
25+ { slug : "ask" , name : "Ask Mode" , roleDefinition : "Test role definition" , groups : [ "command" , "read" , "edit" ] } ,
26+ ] ,
27+ } ) )
28+
29+ // Mock ModeManager - must be hoisted before newTaskTool import
30+ const mockValidateModeSwitch = vi . fn ( ) . mockResolvedValue ( { isValid : true } )
31+ const mockGetEnabledModes = vi . fn ( ) . mockResolvedValue ( [
32+ { slug : "code" , name : "Code Mode" } ,
33+ { slug : "ask" , name : "Ask Mode" } ,
34+ ] )
35+
36+ vi . mock ( "../../services/ModeManager" , ( ) => ( {
37+ ModeManager : vi . fn ( ) . mockImplementation ( ( context , customModesManager ) => {
38+ console . log ( "Mock ModeManager constructor called with:" , { context, customModesManager } )
39+ return {
40+ validateModeSwitch : mockValidateModeSwitch ,
41+ getEnabledModes : mockGetEnabledModes ,
42+ }
43+ } ) ,
1844} ) )
1945
2046vi . mock ( "../../prompts/responses" , ( ) => ( {
@@ -79,6 +105,13 @@ const mockCline = {
79105 getState : vi . fn ( ( ) => ( { customModes : [ ] , mode : "ask" } ) ) ,
80106 handleModeSwitch : vi . fn ( ) ,
81107 createTask : mockCreateTask ,
108+ context : {
109+ globalState : { get : vi . fn ( ) , update : vi . fn ( ) } ,
110+ workspaceState : { get : vi . fn ( ) , update : vi . fn ( ) } ,
111+ } ,
112+ customModesManager : {
113+ getCustomModes : vi . fn ( ) . mockResolvedValue ( [ ] ) ,
114+ } ,
82115 } ) ) ,
83116 } ,
84117}
0 commit comments