From 1d7546f9bfe7e137bd9d2f851829d751a533a016 Mon Sep 17 00:00:00 2001 From: Austin Mroz Date: Tue, 16 Sep 2025 12:34:47 -0500 Subject: [PATCH] Add basic tests --- tests-ui/tests/widgets/proxyWidget.test.ts | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 tests-ui/tests/widgets/proxyWidget.test.ts diff --git a/tests-ui/tests/widgets/proxyWidget.test.ts b/tests-ui/tests/widgets/proxyWidget.test.ts new file mode 100644 index 000000000..3b14d65f2 --- /dev/null +++ b/tests-ui/tests/widgets/proxyWidget.test.ts @@ -0,0 +1,54 @@ +import { describe, expect, test, vi } from 'vitest' + +//import { ComponentWidgetImpl, DOMWidgetImpl } from '@/scripts/domWidget' + +import { LGraphNode } from '@/lib/litegraph/src/litegraph' +import type { IBaseWidget } from '@/lib/litegraph/src/types/widgets.ts' +import '@/scripts/proxyWidget' + +import { + createTestSubgraph, + createTestSubgraphNode +} from '../litegraph/subgraph/fixtures/subgraphHelpers' + +vi.mock('@/stores/graphStore', () => ({ + useCanvasStore: () => ({}) +})) +vi.mock('@/stores/domWidgetStore', () => ({ + useDomWidgetStore: () => ({ widgetStates: new Map() }) +})) + +function testWidget(nodeId: string | number, widgetName: string): IBaseWidget { + return { + _overlay: { isProxyWidget: true, nodeId: `${nodeId}`, widgetName } + } as unknown as IBaseWidget +} + +describe('Subgraph proxyWidgets', () => { + test('Can add simple widget', () => { + const subgraph = createTestSubgraph() + const subgraphNode = createTestSubgraphNode(subgraph) + subgraphNode._internalConfigureAfterSlots() + const graph = subgraphNode.graph + graph.add(subgraphNode) + const innerNode = new LGraphNode('test-node') + subgraph.add(innerNode) + innerNode.addWidget('text', 'stringWidget', 'value', () => {}) + subgraphNode.properties.proxyWidgets = JSON.stringify([ + ['1', 'stringWidget'] + ]) + expect(subgraphNode.widgets.length).toBe(1) + }) + test('Can read existing widget', () => { + const subgraph = createTestSubgraph() + const subgraphNode = createTestSubgraphNode(subgraph) + subgraphNode._internalConfigureAfterSlots() + const graph = subgraphNode.graph + graph.add(subgraphNode) + subgraphNode.widgets = [testWidget(5, 'testWidget')] + + expect(subgraphNode.properties.proxyWidgets).toBe( + JSON.stringify([['5', 'testWidget']]) + ) + }) +})