mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-12 17:20:44 +00:00
30 lines
1016 B
TypeScript
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\\",
|
|
]);
|
|
});
|
|
});
|