48 lines
1.5 KiB
JavaScript
48 lines
1.5 KiB
JavaScript
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",
|
|
]);
|
|
});
|