mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-02 15:40:20 +00:00
test: drop duplicate nodes media parser coverage
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import * as fs from "node:fs/promises";
|
||||
import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { parseCameraSnapPayload, parseCameraClipPayload } from "./nodes-camera.js";
|
||||
import { IOS_NODE, createIosNodeListResponse } from "./program.nodes-test-helpers.js";
|
||||
import {
|
||||
callGateway,
|
||||
@@ -38,24 +37,6 @@ async function expectLoggedSingleMediaFile(params?: {
|
||||
return mediaPath;
|
||||
}
|
||||
|
||||
function expectParserAcceptsUrlWithoutBase64(
|
||||
parse: (payload: Record<string, unknown>) => { url?: string; base64?: string },
|
||||
payload: Record<string, unknown>,
|
||||
expectedUrl: string,
|
||||
) {
|
||||
const result = parse(payload);
|
||||
expect(result.url).toBe(expectedUrl);
|
||||
expect(result.base64).toBeUndefined();
|
||||
}
|
||||
|
||||
function expectParserRejectsMissingMedia(
|
||||
parse: (payload: Record<string, unknown>) => unknown,
|
||||
payload: Record<string, unknown>,
|
||||
expectedMessage: string,
|
||||
) {
|
||||
expect(() => parse(payload)).toThrow(expectedMessage);
|
||||
}
|
||||
|
||||
function mockNodeGateway(command?: string, payload?: Record<string, unknown>) {
|
||||
callGateway.mockImplementation(async (...args: unknown[]) => {
|
||||
const opts = (args[0] ?? {}) as { method?: string };
|
||||
@@ -358,61 +339,4 @@ describe("cli program (nodes media)", () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("url payload parsers", () => {
|
||||
const parserCases = [
|
||||
{
|
||||
label: "camera snap parser",
|
||||
parse: (payload: Record<string, unknown>) => parseCameraSnapPayload(payload),
|
||||
validPayload: {
|
||||
format: "jpg",
|
||||
url: "https://example.com/photo.jpg",
|
||||
width: 640,
|
||||
height: 480,
|
||||
},
|
||||
invalidPayload: { format: "jpg", width: 640, height: 480 },
|
||||
expectedUrl: "https://example.com/photo.jpg",
|
||||
expectedError: "invalid camera.snap payload",
|
||||
},
|
||||
{
|
||||
label: "camera clip parser",
|
||||
parse: (payload: Record<string, unknown>) => parseCameraClipPayload(payload),
|
||||
validPayload: {
|
||||
format: "mp4",
|
||||
url: "https://example.com/clip.mp4",
|
||||
durationMs: 3000,
|
||||
hasAudio: true,
|
||||
},
|
||||
invalidPayload: { format: "mp4", durationMs: 3000, hasAudio: true },
|
||||
expectedUrl: "https://example.com/clip.mp4",
|
||||
expectedError: "invalid camera.clip payload",
|
||||
},
|
||||
] as const;
|
||||
|
||||
it.each(parserCases)(
|
||||
"accepts url without base64: $label",
|
||||
({ parse, validPayload, expectedUrl }) => {
|
||||
expectParserAcceptsUrlWithoutBase64(parse, validPayload, expectedUrl);
|
||||
},
|
||||
);
|
||||
|
||||
it.each(parserCases)(
|
||||
"rejects payload with neither base64 nor url: $label",
|
||||
({ parse, invalidPayload, expectedError }) => {
|
||||
expectParserRejectsMissingMedia(parse, invalidPayload, expectedError);
|
||||
},
|
||||
);
|
||||
|
||||
it("snap parser accepts both base64 and url", () => {
|
||||
const result = parseCameraSnapPayload({
|
||||
format: "jpg",
|
||||
base64: "aGk=",
|
||||
url: "https://example.com/photo.jpg",
|
||||
width: 640,
|
||||
height: 480,
|
||||
});
|
||||
expect(result.base64).toBe("aGk=");
|
||||
expect(result.url).toBe("https://example.com/photo.jpg");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user