@itwin/certa 5.7.0-dev.5 → 5.7.0-dev.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElectronTestRunner.d.ts","sourceRoot":"","sources":["../../../src/runners/electron/ElectronTestRunner.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,kBAAkB;IAC7B,gBAAuB,gBAAgB,SAAS;IAChD,gBAAuB,eAAe,SAAS;WAC3B,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ElectronTestRunner.d.ts","sourceRoot":"","sources":["../../../src/runners/electron/ElectronTestRunner.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,kBAAkB;IAC7B,gBAAuB,gBAAgB,SAAS;IAChD,gBAAuB,eAAe,SAAS;WAC3B,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;WAmB9C,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CA0DjE"}
|
|
@@ -20,6 +20,10 @@ class ElectronTestRunner {
|
|
|
20
20
|
const { app } = require("electron");
|
|
21
21
|
if (config.debug)
|
|
22
22
|
app.commandLine.appendSwitch("remote-debugging-port", String(config.ports.frontendDebugging));
|
|
23
|
+
// Chromium no longer fallbacks to SwiftShader by default when no GPU is available, so we need to explicitly enable it.
|
|
24
|
+
// Since headless Electron tests run with xvfb, GPU is not reachable even if it is available on the host machine.
|
|
25
|
+
// More info: https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/gpu/swiftshader.md
|
|
26
|
+
app.commandLine.appendSwitch("enable-unsafe-swiftshader");
|
|
23
27
|
const timeout = new Promise((_resolve, reject) => setTimeout(() => reject(new Error("Timed out after 2 minutes when starting electron")), 2 * 60 * 1000));
|
|
24
28
|
await Promise.race([app.whenReady(), timeout]);
|
|
25
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElectronTestRunner.js","sourceRoot":"","sources":["../../../src/runners/electron/ElectronTestRunner.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F,yDAAyD;AACzD,6BAA6B;AAE7B,6DAAsE;AACtE,uDAA4D;AAG5D,MAAa,kBAAkB;IACtB,MAAM,CAAU,gBAAgB,GAAG,KAAK,CAAC;IACzC,MAAM,CAAU,eAAe,GAAG,KAAK,CAAC;IACxC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAmB;QAChD,kDAAkD;QAClD,IAAI,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC;YACnC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,IAAA,+BAAkB,GAAE,CAAC,CAAC;QAElD,0IAA0I;QAC1I,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,KAAK;YACd,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEhG,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC1J,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAmB;QAC9C,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAE5D,MAAM,cAAc,GAAmB;YACrC,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,KAAK;YACvB,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,aAAa,CAAC;YACvC,IAAI,EAAE,MAAM,CAAC,KAAK;YAClB,cAAc;SACf,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC3C,0HAA0H;YAC1H,2CAA2C;YAC3C,IAAI,OAAO,CAAC,IAAI;gBACd,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,CAAM,EAAE,EAA2B,EAAE,GAAG,IAAW,EAAE,EAAE;YACxF,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACrB,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,gDAAgD;QAC7E,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAO,EAAE,KAAa,EAAE,EAAE;YAClD,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;gBAChD,eAAe,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,YAAY,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,EAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAO,EAAE,EAAE;YAC7D,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;YACpD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;gBAChD,eAAe,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;YACH,cAAc,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAU,EAAE,GAAQ,EAAE,EAAE;YAC1D,KAAK,CAAC,WAAW,GAAG,MAAM,IAAA,yCAAyB,EAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;YACjE,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,iBAAiB,CAAC;8BACpD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;kBAClC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;0BACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAE3D,MAAM,UAAU,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,MAAM,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC,CAAC;IACpF,CAAC;;
|
|
1
|
+
{"version":3,"file":"ElectronTestRunner.js","sourceRoot":"","sources":["../../../src/runners/electron/ElectronTestRunner.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F,yDAAyD;AACzD,6BAA6B;AAE7B,6DAAsE;AACtE,uDAA4D;AAG5D,MAAa,kBAAkB;IACtB,MAAM,CAAU,gBAAgB,GAAG,KAAK,CAAC;IACzC,MAAM,CAAU,eAAe,GAAG,KAAK,CAAC;IACxC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAmB;QAChD,kDAAkD;QAClD,IAAI,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC;YACnC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,IAAA,+BAAkB,GAAE,CAAC,CAAC;QAElD,0IAA0I;QAC1I,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,KAAK;YACd,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEhG,uHAAuH;QACvH,iHAAiH;QACjH,sGAAsG;QACtG,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;QAE1D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC1J,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAmB;QAC9C,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAE5D,MAAM,cAAc,GAAmB;YACrC,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,KAAK;YACvB,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,aAAa,CAAC;YACvC,IAAI,EAAE,MAAM,CAAC,KAAK;YAClB,cAAc;SACf,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,EAAE;YAC3C,0HAA0H;YAC1H,2CAA2C;YAC3C,IAAI,OAAO,CAAC,IAAI;gBACd,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,CAAM,EAAE,EAA2B,EAAE,GAAG,IAAW,EAAE,EAAE;YACxF,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACrB,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,gDAAgD;QAC7E,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAO,EAAE,KAAa,EAAE,EAAE;YAClD,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;gBAChD,eAAe,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,YAAY,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,EAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAO,EAAE,EAAE;YAC7D,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;YACpD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;gBAChD,eAAe,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;YACH,cAAc,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAU,EAAE,GAAQ,EAAE,EAAE;YAC1D,KAAK,CAAC,WAAW,GAAG,MAAM,IAAA,yCAAyB,EAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;YACjE,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,iBAAiB,CAAC;8BACpD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;kBAClC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;0BACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAE3D,MAAM,UAAU,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,MAAM,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC,CAAC;IACpF,CAAC;;AA/EH,gDAgFC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\nimport * as path from \"path\";\r\nimport { WebPreferences } from \"electron\";\r\nimport { executeRegisteredCallback } from \"../../utils/CallbackUtils\";\r\nimport { relaunchInElectron } from \"../../utils/SpawnUtils\";\r\nimport { CertaConfig } from \"../../CertaConfig\";\r\n\r\nexport class ElectronTestRunner {\r\n public static readonly supportsCoverage = false;\r\n public static readonly supportsCleanup = false;\r\n public static async initialize(config: CertaConfig): Promise<void> {\r\n // Restart under electron if we're running in node\r\n if (!(\"electron\" in process.versions))\r\n return process.exit(await relaunchInElectron());\r\n\r\n // If we are running in electron, we need to append any chromium CLI switches ***before*** the 'ready' event of the app module is emitted.\r\n const { app } = require(\"electron\");\r\n if (config.debug)\r\n app.commandLine.appendSwitch(\"remote-debugging-port\", String(config.ports.frontendDebugging));\r\n\r\n // Chromium no longer fallbacks to SwiftShader by default when no GPU is available, so we need to explicitly enable it.\r\n // Since headless Electron tests run with xvfb, GPU is not reachable even if it is available on the host machine.\r\n // More info: https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/gpu/swiftshader.md\r\n app.commandLine.appendSwitch(\"enable-unsafe-swiftshader\");\r\n\r\n const timeout = new Promise((_resolve, reject) => setTimeout(() => reject(new Error(\"Timed out after 2 minutes when starting electron\")), 2 * 60 * 1000));\r\n await Promise.race([app.whenReady(), timeout]);\r\n }\r\n\r\n public static async runTests(config: CertaConfig): Promise<void> {\r\n const { BrowserWindow, app, ipcMain } = require(\"electron\");\r\n\r\n const webPreferences: WebPreferences = {\r\n nodeIntegration: true,\r\n contextIsolation: false,\r\n sandbox: false,\r\n };\r\n\r\n const rendererWindow = new BrowserWindow({\r\n show: config.debug,\r\n webPreferences,\r\n });\r\n\r\n const exitElectronApp = (exitCode: number) => {\r\n // Passing exit code to parent process doesn't seem to work anymore with electron 10 - sending message with status instead\r\n // See note in SpawnUtils.onExitElectronApp\r\n if (process.send)\r\n process.send({ exitCode });\r\n app.exit(exitCode);\r\n };\r\n\r\n ipcMain.on(\"certa-console\", async (e: any, op: \"log\" | \"error\" | \"dir\", ...args: any[]) => {\r\n console[op](...args);\r\n e.returnValue = undefined; // ipcRenderer.sendSync() will hang without this\r\n });\r\n\r\n ipcMain.on(\"certa-done\", (_e: any, count: number) => {\r\n rendererWindow.webContents.once(\"destroyed\", () => {\r\n exitElectronApp(count);\r\n });\r\n setImmediate(() => rendererWindow.close());\r\n });\r\n\r\n ipcMain.on(\"certa-error\", (_e: any, { message, stack }: any) => {\r\n console.error(\"Uncaught Error in Tests: \", message);\r\n console.error(stack);\r\n rendererWindow.webContents.once(\"destroyed\", () => {\r\n exitElectronApp(1);\r\n });\r\n rendererWindow.close();\r\n });\r\n\r\n ipcMain.on(\"certa-callback\", async (event: any, msg: any) => {\r\n event.returnValue = await executeRegisteredCallback(msg.name, msg.args);\r\n });\r\n\r\n rendererWindow.webContents.once(\"did-finish-load\", async () => {\r\n const initScriptPath = require.resolve(\"./initElectronTests.js\");\r\n const startTests = async () => rendererWindow.webContents.executeJavaScript(`\r\n var _CERTA_CONFIG = ${JSON.stringify(config)};\r\n require(${JSON.stringify(initScriptPath)});\r\n startCertaTests(${JSON.stringify(config.testBundle)});`);\r\n\r\n await startTests();\r\n });\r\n await rendererWindow.loadFile(path.join(__dirname, \"../../../public/index.html\"));\r\n }\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/certa",
|
|
3
|
-
"version": "5.7.0-dev.
|
|
3
|
+
"version": "5.7.0-dev.6",
|
|
4
4
|
"description": "A mocha-based integration test runner",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "bin/certa.js",
|
|
@@ -42,15 +42,15 @@
|
|
|
42
42
|
"@types/mocha": "^10.0.6",
|
|
43
43
|
"@types/node": "~20.17.0",
|
|
44
44
|
"@types/yargs": "17.0.19",
|
|
45
|
-
"electron": "^
|
|
45
|
+
"electron": "^40.0.0",
|
|
46
46
|
"eslint": "^9.31.0",
|
|
47
47
|
"nyc": "^17.1.0",
|
|
48
48
|
"rimraf": "^6.0.1",
|
|
49
49
|
"typescript": "~5.6.2",
|
|
50
|
-
"@itwin/build-tools": "5.7.0-dev.
|
|
50
|
+
"@itwin/build-tools": "5.7.0-dev.6"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
53
|
-
"electron": "^35.0.0 || ^36.0.0 || ^37.0.0 || ^38.0.0 || ^39.0.0"
|
|
53
|
+
"electron": "^35.0.0 || ^36.0.0 || ^37.0.0 || ^38.0.0 || ^39.0.0 || ^40.0.0"
|
|
54
54
|
},
|
|
55
55
|
"peerDependenciesMeta": {
|
|
56
56
|
"electron": {
|