Files
wehub-resource-sync e904b667c6
Build/Publish Develop Docs / deploy (push) Failing after 1s
PaddleOCR Code Style Check / check-code-style (push) Failing after 1s
PaddleOCR PR Tests GPU / detect-changes (push) Failing after 1s
PaddleOCR PR Tests / detect-changes (push) Failing after 1s
PaddleOCR PR Tests GPU / test-pr-gpu (push) Has been cancelled
PaddleOCR PR Tests / test-pr (push) Has been cancelled
PaddleOCR PR Tests GPU / test-pr-gpu-impl (push) Has been cancelled
PaddleOCR PR Tests / test-pr-python (3.13) (push) Has been cancelled
PaddleOCR PR Tests / test-pr-python (3.8) (push) Has been cancelled
PaddleOCR PR Tests / test-pr-python (3.9) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 11:59:26 +08:00

75 lines
2.0 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
createTransportError,
createTransportRequest,
createTransportSuccess,
deserializeError,
isTransportRequest,
isTransportResponse,
serializeError
} from "../src/worker/protocol";
describe("worker transport protocol", () => {
it("creates transport requests with the expected wire format", () => {
const request = createTransportRequest("predict", { value: 1 }, 7);
expect(request).toEqual({
kind: "worker-transport-request",
type: "predict",
payload: { value: 1 },
requestId: 7
});
expect(isTransportRequest(request)).toBe(true);
expect(isTransportResponse(request)).toBe(false);
});
it("creates success responses", () => {
const response = createTransportSuccess(7, { ok: true });
expect(response).toEqual({
kind: "worker-transport-response",
status: "success",
requestId: 7,
payload: { ok: true }
});
expect(isTransportResponse(response)).toBe(true);
expect(isTransportRequest(response)).toBe(false);
});
it("creates error responses by serializing the error", () => {
const response = createTransportError(9, new TypeError("bad payload"));
expect(response).toMatchObject({
kind: "worker-transport-response",
status: "error",
requestId: 9,
error: {
name: "TypeError",
message: "bad payload"
}
});
});
it("serializes unknown errors with defaults", () => {
expect(serializeError(null)).toEqual({
name: "Error",
message: "Unknown worker error.",
stack: ""
});
});
it("deserializes error payloads back into Error instances", () => {
const error = deserializeError({
name: "RangeError",
message: "out of range",
stack: "stack-trace"
});
expect(error).toBeInstanceOf(Error);
expect(error.name).toBe("RangeError");
expect(error.message).toBe("out of range");
expect(error.stack).toBe("stack-trace");
});
});