Sanity test fixes (follow up on previous PR)

This commit is contained in:
Dmitriy Vasyura
2026-01-11 14:05:24 +01:00
parent 3bb929b40d
commit 99c7bf3cb2
4 changed files with 40 additions and 30 deletions

View File

@@ -3,7 +3,6 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import assert from 'assert';
import { spawn } from 'child_process';
import os from 'os';
import { TestContext } from './context';
@@ -100,6 +99,8 @@ export function setup(context: TestContext) {
context.log(`Starting server ${entryPoint} with args ${args.join(' ')}`);
const server = spawn(entryPoint, args, { shell: true, detached: os.platform() !== 'win32' });
let testError: Error | undefined;
server.stderr.on('data', (data) => {
context.error(`[Server Error] ${data.toString().trim()}`);
});
@@ -112,8 +113,10 @@ export function setup(context: TestContext) {
const port = /Extension host agent listening on (\d+)/.exec(text)?.[1];
if (port) {
const url = context.getWebServerUrl(port, token, test.workspaceDir);
runUITest(url, test).finally(() => context.killProcessTree(server.pid!));
const url = context.getWebServerUrl(port, token, test.workspaceDir).toString();
runUITest(url, test)
.catch((error) => { testError = error; })
.finally(() => context.killProcessTree(server.pid!));
}
});
@@ -121,28 +124,28 @@ export function setup(context: TestContext) {
server.on('error', reject);
server.on('exit', resolve);
});
if (testError) {
throw testError;
}
}
async function runUITest(url: string, test: UITest) {
try {
const browser = await context.launchBrowser();
const page = await browser.newPage();
const browser = await context.launchBrowser();
const page = await browser.newPage();
context.log(`Navigating to ${url}`);
await page.goto(url, { waitUntil: 'networkidle' });
context.log(`Navigating to ${url}`);
await page.goto(url, { waitUntil: 'networkidle' });
context.log('Waiting for the workbench to load');
await page.waitForSelector('.monaco-workbench');
context.log('Waiting for the workbench to load');
await page.waitForSelector('.monaco-workbench');
await test.run(page);
await test.run(page);
context.log('Closing browser');
await browser.close();
context.log('Closing browser');
await browser.close();
test.validate();
} catch (error) {
assert.fail(error instanceof Error ? error.message : String(error));
}
test.validate();
}
});
}