Files
codex-market-app/test/canvas-inputs.test.js
T

48 lines
1.5 KiB
JavaScript
Raw Normal View History

const test = require("node:test");
const assert = require("node:assert/strict");
const { collectUpstreamOutputs } = require("../renderer/canvas-inputs.js");
function nodeWithConnections(connections) {
return { inputs: { input_1: { connections } } };
}
test("collects text from a connected text node for image prompts", () => {
const result = collectUpstreamOutputs(
nodeWithConnections([{ node: 1 }]),
() => ({ text: "a cinematic desk lamp", image: "" })
);
assert.equal(result.text, "a cinematic desk lamp");
assert.deepEqual(result.images, []);
});
test("exposes the first connected image for first-frame video", () => {
const result = collectUpstreamOutputs(
nodeWithConnections([{ node: 1 }]),
() => ({ image: "data:image/png;base64,first" })
);
assert.equal(result.image, "data:image/png;base64,first");
assert.deepEqual(result.images, ["data:image/png;base64,first"]);
});
test("keeps every connected image in connection order and removes duplicates", () => {
const outputs = {
1: { image: "data:image/png;base64,one" },
2: { image: "data:image/png;base64,two" },
3: { image: "data:image/png;base64,one" },
4: { image: " " },
};
const result = collectUpstreamOutputs(
nodeWithConnections([{ node: 1 }, { node: 2 }, { node: 3 }, { node: 4 }]),
(id) => outputs[id]
);
assert.equal(result.image, "data:image/png;base64,one");
assert.deepEqual(result.images, [
"data:image/png;base64,one",
"data:image/png;base64,two",
]);
});