mirror of
http://192.168.0.88:13333/lywsvip/openclaw-zero-token.git
synced 2026-05-22 15:21:43 +08:00
Major upgrade from e26988a38 to upstream v2026.3.28 (f9b107928).
Key changes:
- Upstream src/, ui/, extensions/ (89 bundled extensions)
- Zero-token web providers preserved in src/zero-token/
- AskOnce plugin restored and registered as CLI command
- Added missing packages: @anthropic-ai/vertex-sdk, @modelcontextprotocol/sdk
- Fixed tsconfig rootDir, skipLibCheck for plugin-sdk DTS build
- Added askonce to bundled plugin metadata and package.json exports
- Fixed AskOnce CLI command registration (missing commands metadata)
- Restored AskOnce adapter imports (correct 5-level relative paths)
- Removed stale migration artifacts from root directory
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|
import { createSafeStreamWriter } from "./stream-writer.js";
|
|
|
|
describe("createSafeStreamWriter", () => {
|
|
it("signals broken pipes and closes the writer", () => {
|
|
const onBrokenPipe = vi.fn();
|
|
const writer = createSafeStreamWriter({ onBrokenPipe });
|
|
const stream = {
|
|
write: vi.fn(() => {
|
|
const err = new Error("EPIPE") as NodeJS.ErrnoException;
|
|
err.code = "EPIPE";
|
|
throw err;
|
|
}),
|
|
} as unknown as NodeJS.WriteStream;
|
|
|
|
expect(writer.writeLine(stream, "hello")).toBe(false);
|
|
expect(writer.isClosed()).toBe(true);
|
|
expect(onBrokenPipe).toHaveBeenCalledTimes(1);
|
|
|
|
onBrokenPipe.mockClear();
|
|
expect(writer.writeLine(stream, "again")).toBe(false);
|
|
expect(onBrokenPipe).toHaveBeenCalledTimes(0);
|
|
});
|
|
|
|
it("treats broken pipes from beforeWrite as closed", () => {
|
|
const onBrokenPipe = vi.fn();
|
|
const writer = createSafeStreamWriter({
|
|
onBrokenPipe,
|
|
beforeWrite: () => {
|
|
const err = new Error("EIO") as NodeJS.ErrnoException;
|
|
err.code = "EIO";
|
|
throw err;
|
|
},
|
|
});
|
|
const stream = { write: vi.fn(() => true) } as unknown as NodeJS.WriteStream;
|
|
|
|
expect(writer.write(stream, "hi")).toBe(false);
|
|
expect(writer.isClosed()).toBe(true);
|
|
expect(onBrokenPipe).toHaveBeenCalledTimes(1);
|
|
});
|
|
});
|