@@ -678,6 +678,31 @@ describe('LspRouter', () => {
678678 assert . deepStrictEqual ( lspRouter . getAllWorkspaceFolders ( ) , expectedFolders )
679679 assert ( didChangeWorkspaceFoldersSpy . calledWith ( { event } ) )
680680 } )
681+
682+ it ( 'should filter out duplicate workspace folder URIs when adding' , ( ) => {
683+ const initialFolders = [
684+ { name : 'existing' , uri : 'file:///existing' } ,
685+ { name : 'another' , uri : 'file:///another' } ,
686+ ]
687+ lspRouter [ 'workspaceFolders' ] = initialFolders
688+
689+ const event = {
690+ added : [
691+ { name : 'new' , uri : 'file:///new' } ,
692+ { name : 'duplicate' , uri : 'file:///existing' } , // duplicate URI
693+ ] ,
694+ removed : [ ] ,
695+ }
696+
697+ lspRouter . didChangeWorkspaceFolders ( event )
698+
699+ const expectedFolders = [
700+ { name : 'existing' , uri : 'file:///existing' } ,
701+ { name : 'another' , uri : 'file:///another' } ,
702+ { name : 'new' , uri : 'file:///new' } ,
703+ ]
704+ assert . deepStrictEqual ( lspRouter . getAllWorkspaceFolders ( ) , expectedFolders )
705+ } )
681706 } )
682707
683708 describe ( 'didCreateFiles' , ( ) => {
0 commit comments