@@ -73,7 +73,17 @@ vi.mock('../ui/commands/agentsCommand.js', () => ({
7373} ) ) ;
7474vi . mock ( '../ui/commands/bugCommand.js' , ( ) => ( { bugCommand : { } } ) ) ;
7575vi . mock ( '../ui/commands/chatCommand.js' , ( ) => ( {
76- chatCommand : { name : 'chat' , subCommands : [ ] } ,
76+ chatCommand : {
77+ name : 'chat' ,
78+ subCommands : [
79+ { name : 'list' } ,
80+ { name : 'save' } ,
81+ { name : 'resume' } ,
82+ { name : 'delete' } ,
83+ { name : 'share' } ,
84+ { name : 'checkpoints' , hidden : true , subCommands : [ { name : 'list' } ] } ,
85+ ] ,
86+ } ,
7787 debugCommand : { name : 'debug' } ,
7888} ) ) ;
7989vi . mock ( '../ui/commands/clearCommand.js' , ( ) => ( { clearCommand : { } } ) ) ;
@@ -94,7 +104,19 @@ vi.mock('../ui/commands/modelCommand.js', () => ({
94104} ) ) ;
95105vi . mock ( '../ui/commands/privacyCommand.js' , ( ) => ( { privacyCommand : { } } ) ) ;
96106vi . mock ( '../ui/commands/quitCommand.js' , ( ) => ( { quitCommand : { } } ) ) ;
97- vi . mock ( '../ui/commands/resumeCommand.js' , ( ) => ( { resumeCommand : { } } ) ) ;
107+ vi . mock ( '../ui/commands/resumeCommand.js' , ( ) => ( {
108+ resumeCommand : {
109+ name : 'resume' ,
110+ subCommands : [
111+ { name : 'list' } ,
112+ { name : 'save' } ,
113+ { name : 'resume' } ,
114+ { name : 'delete' } ,
115+ { name : 'share' } ,
116+ { name : 'checkpoints' , hidden : true , subCommands : [ { name : 'list' } ] } ,
117+ ] ,
118+ } ,
119+ } ) ) ;
98120vi . mock ( '../ui/commands/statsCommand.js' , ( ) => ( { statsCommand : { } } ) ) ;
99121vi . mock ( '../ui/commands/themeCommand.js' , ( ) => ( { themeCommand : { } } ) ) ;
100122vi . mock ( '../ui/commands/toolsCommand.js' , ( ) => ( { toolsCommand : { } } ) ) ;
@@ -256,7 +278,7 @@ describe('BuiltinCommandLoader', () => {
256278 } ) ;
257279
258280 describe ( 'chat debug command' , ( ) => {
259- it ( 'should NOT add debug subcommand to chatCommand if not a nightly build' , async ( ) => {
281+ it ( 'should NOT add debug subcommand to chat/resume commands if not a nightly build' , async ( ) => {
260282 vi . mocked ( isNightly ) . mockResolvedValue ( false ) ;
261283 const loader = new BuiltinCommandLoader ( mockConfig ) ;
262284 const commands = await loader . loadCommands ( new AbortController ( ) . signal ) ;
@@ -265,9 +287,30 @@ describe('BuiltinCommandLoader', () => {
265287 expect ( chatCmd ?. subCommands ) . toBeDefined ( ) ;
266288 const hasDebug = chatCmd ! . subCommands ! . some ( ( c ) => c . name === 'debug' ) ;
267289 expect ( hasDebug ) . toBe ( false ) ;
290+
291+ const resumeCmd = commands . find ( ( c ) => c . name === 'resume' ) ;
292+ const resumeHasDebug =
293+ resumeCmd ?. subCommands ?. some ( ( c ) => c . name === 'debug' ) ?? false ;
294+ expect ( resumeHasDebug ) . toBe ( false ) ;
295+
296+ const chatCheckpointsCmd = chatCmd ?. subCommands ?. find (
297+ ( c ) => c . name === 'checkpoints' ,
298+ ) ;
299+ const chatCheckpointHasDebug =
300+ chatCheckpointsCmd ?. subCommands ?. some ( ( c ) => c . name === 'debug' ) ??
301+ false ;
302+ expect ( chatCheckpointHasDebug ) . toBe ( false ) ;
303+
304+ const resumeCheckpointsCmd = resumeCmd ?. subCommands ?. find (
305+ ( c ) => c . name === 'checkpoints' ,
306+ ) ;
307+ const resumeCheckpointHasDebug =
308+ resumeCheckpointsCmd ?. subCommands ?. some ( ( c ) => c . name === 'debug' ) ??
309+ false ;
310+ expect ( resumeCheckpointHasDebug ) . toBe ( false ) ;
268311 } ) ;
269312
270- it ( 'should add debug subcommand to chatCommand if it is a nightly build' , async ( ) => {
313+ it ( 'should add debug subcommand to chat/resume commands if it is a nightly build' , async ( ) => {
271314 vi . mocked ( isNightly ) . mockResolvedValue ( true ) ;
272315 const loader = new BuiltinCommandLoader ( mockConfig ) ;
273316 const commands = await loader . loadCommands ( new AbortController ( ) . signal ) ;
@@ -276,6 +319,27 @@ describe('BuiltinCommandLoader', () => {
276319 expect ( chatCmd ?. subCommands ) . toBeDefined ( ) ;
277320 const hasDebug = chatCmd ! . subCommands ! . some ( ( c ) => c . name === 'debug' ) ;
278321 expect ( hasDebug ) . toBe ( true ) ;
322+
323+ const resumeCmd = commands . find ( ( c ) => c . name === 'resume' ) ;
324+ const resumeHasDebug =
325+ resumeCmd ?. subCommands ?. some ( ( c ) => c . name === 'debug' ) ?? false ;
326+ expect ( resumeHasDebug ) . toBe ( true ) ;
327+
328+ const chatCheckpointsCmd = chatCmd ?. subCommands ?. find (
329+ ( c ) => c . name === 'checkpoints' ,
330+ ) ;
331+ const chatCheckpointHasDebug =
332+ chatCheckpointsCmd ?. subCommands ?. some ( ( c ) => c . name === 'debug' ) ??
333+ false ;
334+ expect ( chatCheckpointHasDebug ) . toBe ( true ) ;
335+
336+ const resumeCheckpointsCmd = resumeCmd ?. subCommands ?. find (
337+ ( c ) => c . name === 'checkpoints' ,
338+ ) ;
339+ const resumeCheckpointHasDebug =
340+ resumeCheckpointsCmd ?. subCommands ?. some ( ( c ) => c . name === 'debug' ) ??
341+ false ;
342+ expect ( resumeCheckpointHasDebug ) . toBe ( true ) ;
279343 } ) ;
280344 } ) ;
281345} ) ;
0 commit comments