import { Application } from "spectron"; const AppPaths: Partial> = { win32: "./dist/win-unpacked/Lens.exe", linux: "./dist/linux-unpacked/kontena-lens", darwin: "./dist/mac/Lens.app/Contents/MacOS/Lens", }; export function itIf(condition: boolean) { return condition ? it : it.skip; } export function describeIf(condition: boolean) { return condition ? describe : describe.skip; } export function setup(): Application { return new Application({ path: AppPaths[process.platform], // path to electron app args: [], startTimeout: 30000, waitTimeout: 60000, env: { CICD: "true" } }); } type AsyncPidGetter = () => Promise; export async function tearDown(app: Application) { const pid = await (app.mainProcess.pid as any as AsyncPidGetter)(); await app.stop(); try { process.kill(pid, "SIGKILL"); } catch (e) { console.error(e); } }