Files
openclaw/packages/terminal-core/src/osc-progress.test.ts
Peter Steinberger de1dfab03e refactor: move terminal core into package (#88279)
* refactor: move terminal core into package

* refactor: move terminal module files

* fix: clean terminal package CI followups

* test: update lint suppression allowlist

* fix: ship terminal core runtime aliases
2026-05-30 11:07:45 +02:00

30 lines
1016 B
TypeScript

import { describe, expect, it } from "vitest";
import { createOscProgressController, supportsOscProgress } from "./osc-progress.js";
describe("OSC progress", () => {
it("detects supported terminal environments", () => {
expect(supportsOscProgress({ TERM_PROGRAM: "WezTerm" }, true)).toBe(true);
expect(supportsOscProgress({ TERM_PROGRAM: "Apple_Terminal" }, true)).toBe(false);
expect(supportsOscProgress({ WT_SESSION: "1" }, false)).toBe(false);
});
it("writes sanitized OSC 9;4 progress sequences", () => {
const writes: string[] = [];
const controller = createOscProgressController({
env: { TERM_PROGRAM: "ghostty" },
isTty: true,
write: (chunk) => writes.push(chunk),
});
controller.setIndeterminate("Build\u001b]bad\u0007");
controller.setPercent("Build", 42.6);
controller.clear();
expect(writes).toEqual([
"\u001b]9;4;3;;Buildbad\u001b\\",
"\u001b]9;4;1;43;Build\u001b\\",
"\u001b]9;4;0;0;Build\u001b\\",
]);
});
});