@@ -6,6 +6,7 @@ import * as path from "path";
66import * as vscode from "vscode" ;
77import type { IPowerShellExtensionClient } from "../src/features/ExternalApi" ;
88import type { ILogger } from "../src/logging" ;
9+ import { sleep } from "../src/utils" ;
910
1011// This lets us test the rest of our path assumptions against the baseline of
1112// this test file existing at `<root>/test/utils.js`.
@@ -64,11 +65,19 @@ export class TestLogger implements ILogger {
6465export const testLogger = new TestLogger ( ) ;
6566
6667export 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 ) ;
7076 }
71- return extension ! . exports as IPowerShellExtensionClient ;
77+ if ( ! extension . isActive ) {
78+ await extension . activate ( ) ;
79+ }
80+ return extension . exports as IPowerShellExtensionClient ;
7281}
7382
7483export async function ensureEditorServicesIsConnected ( ) : Promise < IPowerShellExtensionClient > {
0 commit comments