@@ -356,6 +356,72 @@ suite("LanguageClientManager Suite", () => {
356356 expect ( languageClientMock . start ) . to . have . been . calledOnce ;
357357 } ) ;
358358
359+ test ( "adds VS Code iconography to CodeLenses" , async ( ) => {
360+ const codelensesFromSourceKitLSP = async ( ) : Promise < vscode . CodeLens [ ] > => {
361+ return [
362+ {
363+ range : new vscode . Range ( 0 , 0 , 0 , 0 ) ,
364+ command : {
365+ title : "Run" ,
366+ command : "swift.run" ,
367+ } ,
368+ isResolved : true ,
369+ } ,
370+ {
371+ range : new vscode . Range ( 0 , 0 , 0 , 0 ) ,
372+ command : {
373+ title : "Debug" ,
374+ command : "swift.debug" ,
375+ } ,
376+ isResolved : true ,
377+ } ,
378+ {
379+ range : new vscode . Range ( 0 , 0 , 0 , 0 ) ,
380+ command : {
381+ title : "Run" ,
382+ command : "some.other.command" ,
383+ } ,
384+ isResolved : true ,
385+ } ,
386+ ] ;
387+ } ;
388+
389+ new LanguageClientManager ( instance ( mockedWorkspace ) , languageClientFactoryMock ) ;
390+ await waitForReturnedPromises ( languageClientMock . start ) ;
391+
392+ expect ( languageClientFactoryMock . createLanguageClient ) . to . have . been . calledOnce ;
393+ const middleware = languageClientFactoryMock . createLanguageClient . args [ 0 ] [ 3 ] . middleware ! ;
394+ expect ( middleware ) . to . have . property ( "provideCodeLenses" ) ;
395+ await expect (
396+ middleware . provideCodeLenses ! ( { } as any , { } as any , codelensesFromSourceKitLSP )
397+ ) . to . eventually . deep . equal ( [
398+ {
399+ range : new vscode . Range ( 0 , 0 , 0 , 0 ) ,
400+ command : {
401+ title : "$(play) Run" ,
402+ command : "swift.run" ,
403+ } ,
404+ isResolved : true ,
405+ } ,
406+ {
407+ range : new vscode . Range ( 0 , 0 , 0 , 0 ) ,
408+ command : {
409+ title : "$(debug) Debug" ,
410+ command : "swift.debug" ,
411+ } ,
412+ isResolved : true ,
413+ } ,
414+ {
415+ range : new vscode . Range ( 0 , 0 , 0 , 0 ) ,
416+ command : {
417+ title : "Run" ,
418+ command : "some.other.command" ,
419+ } ,
420+ isResolved : true ,
421+ } ,
422+ ] ) ;
423+ } ) ;
424+
359425 suite ( "SourceKit-LSP version doesn't support workspace folders" , ( ) => {
360426 let folder1 : MockedObject < FolderContext > ;
361427 let folder2 : MockedObject < FolderContext > ;
0 commit comments