@@ -277,7 +277,9 @@ describe('LiveWatchTreeDataProvider', () => {
277277 'vscode-cmsis-debugger.liveWatch.refresh' ,
278278 'vscode-cmsis-debugger.liveWatch.modify' ,
279279 'vscode-cmsis-debugger.liveWatch.copy' ,
280- 'vscode-cmsis-debugger.liveWatch.addToLiveWatch'
280+ 'vscode-cmsis-debugger.liveWatch.addToLiveWatchFromTextEditor' ,
281+ 'vscode-cmsis-debugger.liveWatch.addToLiveWatchFromWatchWindow' ,
282+ 'vscode-cmsis-debugger.liveWatch.addToLiveWatchFromVariablesView'
281283 ] ) ) ;
282284 } ) ;
283285
@@ -354,6 +356,43 @@ describe('LiveWatchTreeDataProvider', () => {
354356 await handler ( ) ;
355357 expect ( refreshSpy ) . toHaveBeenCalled ( ) ;
356358 } ) ;
359+
360+ it ( 'watch window command adds variable name root' , async ( ) => {
361+ jest . spyOn ( liveWatchTreeDataProvider as any , 'evaluate' ) . mockResolvedValue ( { result : 'value' , variablesReference : 0 } ) ;
362+ liveWatchTreeDataProvider . activate ( tracker ) ;
363+ const handler = getRegisteredHandler ( 'vscode-cmsis-debugger.liveWatch.addToLiveWatchFromWatchWindow' ) ;
364+ expect ( handler ) . toBeDefined ( ) ;
365+ await handler ( { variable : { name : 'myWatchVariable' } } ) ;
366+ const roots = ( liveWatchTreeDataProvider as any ) . roots ;
367+ expect ( roots . length ) . toBe ( 1 ) ;
368+ expect ( roots [ 0 ] . expression ) . toBe ( 'myWatchVariable' ) ;
369+ } ) ;
370+
371+ it ( 'watch window command does nothing with falsy payload' , async ( ) => {
372+ liveWatchTreeDataProvider . activate ( tracker ) ;
373+ const handler = getRegisteredHandler ( 'vscode-cmsis-debugger.liveWatch.addToLiveWatchFromWatchWindow' ) ;
374+ await handler ( undefined ) ;
375+ expect ( ( liveWatchTreeDataProvider as any ) . roots . length ) . toBe ( 0 ) ;
376+ } ) ;
377+
378+ it ( 'variables view command adds variable name root' , async ( ) => {
379+ jest . spyOn ( liveWatchTreeDataProvider as any , 'evaluate' ) . mockResolvedValue ( { result : '12345' , variablesReference : 0 } ) ;
380+ liveWatchTreeDataProvider . activate ( tracker ) ;
381+ const handler = getRegisteredHandler ( 'vscode-cmsis-debugger.liveWatch.addToLiveWatchFromVariablesView' ) ;
382+ expect ( handler ) . toBeDefined ( ) ;
383+ const payload = { container : { name : 'local' } , variable : { name : 'localVariable' } } ;
384+ await handler ( payload ) ;
385+ const roots = ( liveWatchTreeDataProvider as any ) . roots ;
386+ expect ( roots . length ) . toBe ( 1 ) ;
387+ expect ( roots [ 0 ] . expression ) . toBe ( 'localVariable' ) ;
388+ } ) ;
389+
390+ it ( 'variables view command does nothing when variable missing' , async ( ) => {
391+ liveWatchTreeDataProvider . activate ( tracker ) ;
392+ const handler = getRegisteredHandler ( 'vscode-cmsis-debugger.liveWatch.addToLiveWatchFromVariablesView' ) ;
393+ await handler ( { container : { name : 'local' } } ) ;
394+ expect ( ( liveWatchTreeDataProvider as any ) . roots . length ) . toBe ( 0 ) ;
395+ } ) ;
357396 } ) ;
358397
359398 describe ( 'evaluate' , ( ) => {
0 commit comments