@@ -6,6 +6,7 @@ import * as path from "path";
6
6
import * as vscode from "vscode" ;
7
7
import type { IPowerShellExtensionClient } from "../src/features/ExternalApi" ;
8
8
import type { ILogger } from "../src/logging" ;
9
+ import { sleep } from "../src/utils" ;
9
10
10
11
// This lets us test the rest of our path assumptions against the baseline of
11
12
// this test file existing at `<root>/test/utils.js`.
@@ -64,11 +65,19 @@ export class TestLogger implements ILogger {
64
65
export const testLogger = new TestLogger ( ) ;
65
66
66
67
export async function ensureExtensionIsActivated ( ) : Promise < IPowerShellExtensionClient > {
67
- const extension = vscode . extensions . getExtension ( extensionId ) ;
68
- if ( ! extension ! . isActive ) {
69
- await extension ! . activate ( ) ;
68
+ let extension = vscode . extensions . getExtension ( extensionId ) ;
69
+ while ( ! extension ) {
70
+ // Wait for VS Code to be ready
71
+ testLogger . writeDebug ( `Extension ${ extensionId } not yet found...` ) ;
72
+ await sleep ( 200 ) ;
73
+ extension = vscode . extensions . getExtension ( extensionId ) ;
74
+ // Wait for VS Code to be ready
75
+ await sleep ( 200 ) ;
70
76
}
71
- return extension ! . exports as IPowerShellExtensionClient ;
77
+ if ( ! extension . isActive ) {
78
+ await extension . activate ( ) ;
79
+ }
80
+ return extension . exports as IPowerShellExtensionClient ;
72
81
}
73
82
74
83
export async function ensureEditorServicesIsConnected ( ) : Promise < IPowerShellExtensionClient > {
0 commit comments