Files
NetMesh/electron/bridges/terminalBridge.clearPty.test.cjs

57 lines
1.3 KiB
JavaScript
Raw Permalink Normal View History

const test = require("node:test");
const assert = require("node:assert/strict");
const terminalBridge = require("./terminalBridge.cjs");
function initBridge(sessions) {
terminalBridge.init({
sessions,
electronModule: {
webContents: {
fromId: () => ({ send() {} }),
},
},
});
}
test("clearSessionPtyBuffer calls node-pty clear for ConPTY sync after frontend clear", () => {
const calls = [];
const sessions = new Map();
sessions.set("local-ps-1", {
proc: {
clear() {
calls.push("clear");
},
write() {
calls.push("write");
},
},
});
initBridge(sessions);
terminalBridge.clearSessionPtyBuffer({ sender: {} }, { sessionId: "local-ps-1" });
assert.deepEqual(calls, ["clear"]);
});
test("clearSessionPtyBuffer is a no-op when the session has no pty process", () => {
const sessions = new Map();
sessions.set("ssh-1", {
stream: {
write() {},
},
});
initBridge(sessions);
assert.doesNotThrow(() => {
terminalBridge.clearSessionPtyBuffer({ sender: {} }, { sessionId: "ssh-1" });
});
});
test("clearSessionPtyBuffer ignores missing sessions", () => {
initBridge(new Map());
assert.doesNotThrow(() => {
terminalBridge.clearSessionPtyBuffer({ sender: {} }, { sessionId: "missing" });
});
});