import { assert, describe, it } from "vite-plus/test"; import { makeDevelopmentLauncherScript, resolveElectronBinaryPath } from "./electron-launcher.mjs"; describe("electron development launcher", () => { it("uses captured values only as fallbacks for a live runner environment", () => { const script = makeDevelopmentLauncherScript({ electronBinaryPath: "/repo/node_modules/electron/Electron", mainEntryPath: "/repo/apps/desktop/dist-electron/main.cjs", desktopRoot: "/repo/apps/desktop", environment: { VITE_DEV_SERVER_URL: "http://127.0.0.1:8526", T3CODE_PORT: "16566", T3CODE_HOME: "/tmp/t3", }, }); assert.include( script, "if [ -z \"${VITE_DEV_SERVER_URL:-}\" ]; then export VITE_DEV_SERVER_URL='http://127.0.0.1:8526'; fi", ); assert.notInclude(script, "\nexport VITE_DEV_SERVER_URL="); assert.include( script, "exec '/repo/node_modules/electron/Electron' --t3code-dev-root='/repo/apps/desktop' '/repo/apps/desktop/dist-electron/main.cjs' \"$@\"", ); }); it("repairs Electron before loading the package entrypoint", () => { const calls = []; const electronPath = resolveElectronBinaryPath({ ensureRuntime: () => { calls.push("ensure"); }, createRequire: () => (specifier) => { calls.push(`require:${specifier}`); return "/repo/node_modules/electron/dist/Electron.app/Contents/MacOS/Electron"; }, moduleUrl: import.meta.url, }); assert.equal( electronPath, "/repo/node_modules/electron/dist/Electron.app/Contents/MacOS/Electron", ); assert.deepEqual(calls, ["ensure", "require:electron"]); }); });