@@ -127,9 +127,6 @@ class WorkspaceFolderEntry {
127
127
}
128
128
}
129
129
130
- const testExplorerIsEnabled = ( workspace : vscode . WorkspaceFolder ) =>
131
- vscode . workspace . getConfiguration ( "robotcode.testExplorer" , workspace ) . get < boolean > ( "enabled" ) ;
132
-
133
130
export class TestControllerManager {
134
131
private _disposables : vscode . Disposable ;
135
132
public readonly testController : vscode . TestController ;
@@ -197,16 +194,19 @@ export class TestControllerManager {
197
194
( _ ) => undefined ,
198
195
) ;
199
196
} ) ,
200
- vscode . workspace . onDidChangeConfiguration ( ( event ) => {
197
+ vscode . workspace . onDidChangeConfiguration ( async ( event ) => {
198
+ let refresh = false ;
199
+
201
200
for ( const ws of vscode . workspace . workspaceFolders ?? [ ] ) {
202
201
if ( event . affectsConfiguration ( "robotcode.testExplorer" , ws ) ) {
203
- if ( testExplorerIsEnabled ( ws ) ) {
204
- this . refresh ( ) . catch ( ( _ ) => undefined ) ;
205
- } else {
206
- if ( ws ) this . removeWorkspaceFolderItems ( ws ) ;
207
- }
202
+ refresh = true ;
208
203
}
209
204
}
205
+
206
+ if ( refresh ) {
207
+ await this . refreshWorkspace ( ) ;
208
+ await this . updateRunProfiles ( ) ;
209
+ }
210
210
} ) ,
211
211
vscode . workspace . onDidCloseTextDocument ( ( document ) => this . refreshDocument ( document ) ) ,
212
212
vscode . workspace . onDidSaveTextDocument ( ( document ) => this . refreshDocument ( document ) ) ,
@@ -308,6 +308,8 @@ export class TestControllerManager {
308
308
const multiFolders = ( vscode . workspace . workspaceFolders ?. length ?? 0 ) > 1 ;
309
309
310
310
for ( const folder of vscode . workspace . workspaceFolders ?? [ ] ) {
311
+ if ( ! this . isTestExplorerEnabledForWorkspace ( folder ) ) continue ;
312
+
311
313
const folderTag = this . getFolderTag ( folder ) ;
312
314
313
315
const folderName = multiFolders ? ` [${ folder . name } ]` : "" ;
@@ -831,6 +833,12 @@ export class TestControllerManager {
831
833
}
832
834
}
833
835
836
+ // eslint-disable-next-line class-methods-use-this
837
+ private isTestExplorerEnabledForWorkspace ( workspace : vscode . WorkspaceFolder ) : boolean {
838
+ const result = vscode . workspace . getConfiguration ( CONFIG_SECTION , workspace ) . get < boolean > ( "testExplorer.enabled" ) ;
839
+ return result === undefined || result ;
840
+ }
841
+
834
842
private async refreshItem ( item ?: vscode . TestItem , token ?: vscode . CancellationToken ) : Promise < void > {
835
843
if ( token ?. isCancellationRequested ) return ;
836
844
@@ -898,7 +906,9 @@ export class TestControllerManager {
898
906
const addedIds = new Set < string > ( ) ;
899
907
900
908
for ( const folder of vscode . workspace . workspaceFolders ?? [ ] ) {
901
- if ( token ?. isCancellationRequested || ! testExplorerIsEnabled ( folder ) ) return ;
909
+ if ( token ?. isCancellationRequested ) return ;
910
+
911
+ if ( ! this . isTestExplorerEnabledForWorkspace ( folder ) ) continue ;
902
912
903
913
if ( this . robotTestItems . get ( folder ) === undefined || ! this . robotTestItems . get ( folder ) ?. valid ) {
904
914
const items = await this . getTestsFromWorkspaceFolder ( folder , token ) ;
0 commit comments