mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 18:01:37 +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 * as fs from "node:fs/promises";
|
||||||
import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
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 { IOS_NODE, createIosNodeListResponse } from "./program.nodes-test-helpers.js";
|
||||||
import {
|
import {
|
||||||
callGateway,
|
callGateway,
|
||||||
@@ -38,24 +37,6 @@ async function expectLoggedSingleMediaFile(params?: {
|
|||||||
return mediaPath;
|
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>) {
|
function mockNodeGateway(command?: string, payload?: Record<string, unknown>) {
|
||||||
callGateway.mockImplementation(async (...args: unknown[]) => {
|
callGateway.mockImplementation(async (...args: unknown[]) => {
|
||||||
const opts = (args[0] ?? {}) as { method?: string };
|
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