Files
Termix/scripts/electron-security-boundary.test.ts
T

27 lines
1000 B
TypeScript
Raw Normal View History

+17
2026-09-20 14:56:39 -05:00
import { readFileSync } from "node:fs";
import { describe, expect, it } from "vitest";
const main = readFileSync("electron/main.cjs", "utf8");
const preload = readFileSync("electron/preload.js", "utf8");
describe("Electron security boundary", () => {
it("keeps the renderer sandbox and browser security enabled", () => {
expect(main).toContain("sandbox: true");
expect(main).toContain("webSecurity: true");
expect(main).toContain("allowRunningInsecureContent: false");
expect(main).toContain("webviewTag: false");
});
it("does not expose an unrestricted IPC invoke primitive", () => {
expect(preload).toContain("invoke: invokeAllowed");
expect(preload).not.toContain(
"invoke: (channel, ...args) => ipcRenderer.invoke(channel, ...args)",
);
});
it("allows the renderer to hand the local session to Remote Sync", () => {
expect(main).toContain('ipcMain.handle("notify-local-login"');
expect(preload).toContain('"notify-local-login"');
});
});