70 lines
2.0 KiB
JavaScript
70 lines
2.0 KiB
JavaScript
"use strict";
|
||
|
||
// This file is pretty much a copy of https://github.com/electron/electron-quick-start/blob/master/main.js
|
||
|
||
const electron = require("electron");
|
||
// Module to control application life.
|
||
const app = electron.app;
|
||
// Increasing memory
|
||
// app.commandLine.appendSwitch('js-flags', '--max-old-space-size=4096');
|
||
// Module to create native browser window.
|
||
const BrowserWindow = electron.BrowserWindow;
|
||
|
||
const path = require("path");
|
||
const url = require("url");
|
||
|
||
const JASMIN_FILTER_KEY = "--filter";
|
||
const MAIN_PROCESS_KEY = "--process";
|
||
|
||
function getJasminFilter() {
|
||
const filterArg = process.argv.find((arg) => arg.indexOf(JASMIN_FILTER_KEY) === 0);
|
||
return filterArg ? filterArg.slice(JASMIN_FILTER_KEY.length + 1) : null;
|
||
}
|
||
|
||
function getProcess() {
|
||
const filterArg = process.argv.find((arg) => arg.indexOf(MAIN_PROCESS_KEY) === 0);
|
||
return filterArg ? filterArg.slice(MAIN_PROCESS_KEY.length + 1) : 'render';
|
||
}
|
||
|
||
const filter = getJasminFilter();
|
||
const runIn = getProcess();
|
||
|
||
// Keep a global reference of the window object, if you don´t, the window will
|
||
// be closed automatically when the JavaScript object is garbage collected.
|
||
let mainWindow;
|
||
|
||
app.on("ready", () => {
|
||
// Create the browser window.
|
||
mainWindow = new BrowserWindow({
|
||
show: false
|
||
});
|
||
|
||
global.options = {
|
||
filter,
|
||
runIn
|
||
};
|
||
|
||
// Load the index.html of the app.
|
||
mainWindow.loadURL(url.format({
|
||
pathname: path.join(__dirname, "index.html"),
|
||
protocol: "file:",
|
||
slashes: true
|
||
}));
|
||
|
||
if (runIn === "main") {
|
||
console.log("Running tests in the main process.");
|
||
const jasmine = require("./jasmine.js").execute(filter);
|
||
jasmine.onComplete((passed) => {
|
||
process.exit(passed ? 0 : -1);
|
||
});
|
||
} else if(runIn === "render") {
|
||
console.log("Running tests in the render process.");
|
||
} else {
|
||
throw new Error("Can only run the tests in the 'main' or 'render' process");
|
||
}
|
||
});
|
||
|
||
app.on("quit", (e, exitCode) => {
|
||
console.log("Electron process stopped, with status", exitCode);
|
||
});
|