Files
Azornes-Comfyui-LayerForge/tests/test_multi_image_input_characterization.mjs
T

35 lines
1.9 KiB
JavaScript

import assert from 'node:assert/strict';
import { readFile } from 'node:fs/promises';
import test from 'node:test';
const [utilitySource, canvasViewSource] = await Promise.all([
readFile(new URL('../src/utils/MultiImageInputUtils.ts', import.meta.url), 'utf8'),
readFile(new URL('../src/CanvasView.ts', import.meta.url), 'utf8'),
]);
test('LayerForge exposes an ordered virtual multi-image input contract', () => {
assert.match(utilitySource, /LAYERFORGE_IMAGE_LINKS_PROPERTY = 'layerforge_input_image_links'/);
assert.match(utilitySource, /LAYERFORGE_MAX_IMAGE_INPUTS = 32/);
assert.match(utilitySource, /addLayerForgeImageInputLink/);
assert.match(utilitySource, /getLayerForgeImageInputSlot/);
assert.match(canvasViewSource, /installLayerForgeMultiImagePromptPatch/);
assert.match(canvasViewSource, /input_image_\$\{index \+ 1\}/);
assert.match(canvasViewSource, /scheduleLayerForgeImageConnectionConversion/);
assert.match(canvasViewSource, /pruneLayerForgeTransportInputs/);
assert.match(canvasViewSource, /drawLayerForgeVirtualLinks/);
assert.match(canvasViewSource, /installLayerForgeVirtualWirePatch/);
assert.match(canvasViewSource, /bezierCurveTo/);
assert.match(canvasViewSource, /hitTestLayerForgeVirtualLinks/);
assert.match(canvasViewSource, /Remove connection/);
assert.match(canvasViewSource, /removeLayerForgeImageInputLink/);
assert.match(canvasViewSource, /installLayerForgeQuickCreateCapture/);
assert.match(canvasViewSource, /createLayerForgeLoadImageNode/);
assert.match(canvasViewSource, /content: 'Load image'/);
assert.match(canvasViewSource, /scheduleLayerForgeQuickCreateMenu/);
});
test('CanvasIO uses virtual source links for immediate canvas loading', () => {
assert.match(canvasViewSource, /hasLayerForgeImageInput\(this\)/);
assert.match(canvasViewSource, /canvasIO\.checkForInputData\(\{ allowImage: true, allowMask: false, reason: "image_connect" \}\)/);
});