refactor: clarify restoreTerminalState stdin resume option

This commit is contained in:
Peter Steinberger
2026-02-14 20:33:07 +01:00
parent e03dc987e3
commit 994bcbf670
7 changed files with 35 additions and 9 deletions

View File

@@ -58,9 +58,26 @@ describe("restoreTerminalState", () => {
(process.stdin as { resume?: () => void }).resume = resume;
(process.stdin as { isPaused?: () => boolean }).isPaused = isPaused;
restoreTerminalState("test", { resumeStdin: true });
restoreTerminalState("test", { resumeStdinIfPaused: true });
expect(setRawMode).toHaveBeenCalledWith(false);
expect(resume).toHaveBeenCalledOnce();
});
it("does not touch stdin when stdin is not a TTY", () => {
const setRawMode = vi.fn();
const resume = vi.fn();
const isPaused = vi.fn(() => true);
Object.defineProperty(process.stdin, "isTTY", { value: false, configurable: true });
Object.defineProperty(process.stdout, "isTTY", { value: false, configurable: true });
(process.stdin as { setRawMode?: (mode: boolean) => void }).setRawMode = setRawMode;
(process.stdin as { resume?: () => void }).resume = resume;
(process.stdin as { isPaused?: () => boolean }).isPaused = isPaused;
restoreTerminalState("test", { resumeStdinIfPaused: true });
expect(setRawMode).not.toHaveBeenCalled();
expect(resume).not.toHaveBeenCalled();
});
});