diff --git a/tests-ui/README.md b/docs/testing/README.md similarity index 67% rename from tests-ui/README.md rename to docs/testing/README.md index bbb247b91..4f66a8390 100644 --- a/tests-ui/README.md +++ b/docs/testing/README.md @@ -12,12 +12,17 @@ Documentation for unit tests is organized into three guides: ## Testing Structure -The ComfyUI Frontend project uses a mixed approach to unit test organization: +The ComfyUI Frontend project uses **colocated tests** - test files are placed alongside their source files: -- **Component Tests**: Located directly alongside their components with a `.spec.ts` extension -- **Unit Tests**: Located in the `tests-ui/tests/` directory -- **Store Tests**: Located in the `tests-ui/tests/store/` directory -- **Browser Tests**: These are located in the `browser_tests/` directory. There is a dedicated README in the `browser_tests/` directory, so it will not be covered here. +- **Component Tests**: Located directly alongside their components (e.g., `MyComponent.test.ts` next to `MyComponent.vue`) +- **Unit Tests**: Located alongside their source files (e.g., `myUtil.test.ts` next to `myUtil.ts`) +- **Store Tests**: Located in `src/stores/` alongside their store files +- **Browser Tests**: Located in the `browser_tests/` directory (see dedicated README there) + +### Test File Naming + +- Use `.test.ts` extension for test files +- Name tests after their source file: `sourceFile.test.ts` ## Test Frameworks and Libraries @@ -35,8 +40,11 @@ To run the tests locally: # Run unit tests pnpm test:unit +# Run a specific test file +pnpm test:unit -- src/path/to/file.test.ts + # Run unit tests in watch mode pnpm test:unit -- --watch ``` -Refer to the specific guides for more detailed information on each testing type. \ No newline at end of file +Refer to the specific guides for more detailed information on each testing type. diff --git a/tests-ui/component-testing.md b/docs/testing/component-testing.md similarity index 100% rename from tests-ui/component-testing.md rename to docs/testing/component-testing.md diff --git a/tests-ui/store-testing.md b/docs/testing/store-testing.md similarity index 100% rename from tests-ui/store-testing.md rename to docs/testing/store-testing.md diff --git a/tests-ui/unit-testing.md b/docs/testing/unit-testing.md similarity index 100% rename from tests-ui/unit-testing.md rename to docs/testing/unit-testing.md diff --git a/tests-ui/tests/utils/formatUtil.test.ts b/packages/shared-frontend-utils/src/formatUtil.test.ts similarity index 98% rename from tests-ui/tests/utils/formatUtil.test.ts rename to packages/shared-frontend-utils/src/formatUtil.test.ts index 4ab0a7bd2..ac15a78b1 100644 --- a/tests-ui/tests/utils/formatUtil.test.ts +++ b/packages/shared-frontend-utils/src/formatUtil.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' -import { getMediaTypeFromFilename, truncateFilename } from '@/utils/formatUtil' +import { getMediaTypeFromFilename, truncateFilename } from './formatUtil' describe('formatUtil', () => { describe('truncateFilename', () => { diff --git a/tests-ui/tests/base/common/downloadUtil.test.ts b/src/base/common/downloadUtil.test.ts similarity index 100% rename from tests-ui/tests/base/common/downloadUtil.test.ts rename to src/base/common/downloadUtil.test.ts diff --git a/tests-ui/tests/base/credits/comfyCredits.test.ts b/src/base/credits/comfyCredits.test.ts similarity index 100% rename from tests-ui/tests/base/credits/comfyCredits.test.ts rename to src/base/credits/comfyCredits.test.ts diff --git a/tests-ui/tests/components/TopMenuSection.test.ts b/src/components/TopMenuSection.test.ts similarity index 100% rename from tests-ui/tests/components/TopMenuSection.test.ts rename to src/components/TopMenuSection.test.ts diff --git a/tests-ui/tests/components/bottomPanel/EssentialsPanel.test.ts b/src/components/bottomPanel/tabs/shortcuts/EssentialsPanel.test.ts similarity index 100% rename from tests-ui/tests/components/bottomPanel/EssentialsPanel.test.ts rename to src/components/bottomPanel/tabs/shortcuts/EssentialsPanel.test.ts diff --git a/tests-ui/tests/components/bottomPanel/ShortcutsList.spec.ts b/src/components/bottomPanel/tabs/shortcuts/ShortcutsList.test.ts similarity index 100% rename from tests-ui/tests/components/bottomPanel/ShortcutsList.spec.ts rename to src/components/bottomPanel/tabs/shortcuts/ShortcutsList.test.ts diff --git a/tests-ui/tests/components/bottomPanel/tabs/terminal/BaseTerminal.test.ts b/src/components/bottomPanel/tabs/terminal/BaseTerminal.test.ts similarity index 100% rename from tests-ui/tests/components/bottomPanel/tabs/terminal/BaseTerminal.test.ts rename to src/components/bottomPanel/tabs/terminal/BaseTerminal.test.ts diff --git a/tests-ui/tests/components/dialog/content/MissingCoreNodesMessage.test.ts b/src/components/dialog/content/MissingCoreNodesMessage.test.ts similarity index 100% rename from tests-ui/tests/components/dialog/content/MissingCoreNodesMessage.test.ts rename to src/components/dialog/content/MissingCoreNodesMessage.test.ts diff --git a/tests-ui/tests/components/dialog/content/credit/CreditTopUpOption.test.ts b/src/components/dialog/content/credit/CreditTopUpOption.test.ts similarity index 100% rename from tests-ui/tests/components/dialog/content/credit/CreditTopUpOption.test.ts rename to src/components/dialog/content/credit/CreditTopUpOption.test.ts diff --git a/tests-ui/tests/components/graph/ZoomControlsModal.test.ts b/src/components/graph/modals/ZoomControlsModal.test.ts similarity index 100% rename from tests-ui/tests/components/graph/ZoomControlsModal.test.ts rename to src/components/graph/modals/ZoomControlsModal.test.ts diff --git a/tests-ui/tests/components/queue/JobGroupsList.test.ts b/src/components/queue/job/JobGroupsList.test.ts similarity index 97% rename from tests-ui/tests/components/queue/JobGroupsList.test.ts rename to src/components/queue/job/JobGroupsList.test.ts index b9635eca8..b5679f276 100644 --- a/tests-ui/tests/components/queue/JobGroupsList.test.ts +++ b/src/components/queue/job/JobGroupsList.test.ts @@ -22,7 +22,6 @@ const QueueJobItemStub = defineComponent({ runningNodeName: { type: String, default: undefined }, activeDetailsId: { type: String, default: null } }, - emits: ['cancel', 'delete', 'menu', 'view', 'details-enter', 'details-leave'], template: '
' }) diff --git a/tests-ui/tests/components/queue/useJobErrorReporting.test.ts b/src/components/queue/job/useJobErrorReporting.test.ts similarity index 100% rename from tests-ui/tests/components/queue/useJobErrorReporting.test.ts rename to src/components/queue/job/useJobErrorReporting.test.ts diff --git a/tests-ui/tests/components/sidebar/nodeLibrary/NodeHelpPage.test.ts b/src/components/sidebar/tabs/nodeLibrary/NodeHelpPage.test.ts similarity index 100% rename from tests-ui/tests/components/sidebar/nodeLibrary/NodeHelpPage.test.ts rename to src/components/sidebar/tabs/nodeLibrary/NodeHelpPage.test.ts diff --git a/tests-ui/tests/composables/canvas/useSelectedLiteGraphItems.test.ts b/src/composables/canvas/useSelectedLiteGraphItems.test.ts similarity index 98% rename from tests-ui/tests/composables/canvas/useSelectedLiteGraphItems.test.ts rename to src/composables/canvas/useSelectedLiteGraphItems.test.ts index 303dddc08..23e1e8dd3 100644 --- a/tests-ui/tests/composables/canvas/useSelectedLiteGraphItems.test.ts +++ b/src/composables/canvas/useSelectedLiteGraphItems.test.ts @@ -2,12 +2,8 @@ import { createPinia, setActivePinia } from 'pinia' import { beforeEach, describe, expect, it, vi } from 'vitest' import { useSelectedLiteGraphItems } from '@/composables/canvas/useSelectedLiteGraphItems' -import type { LGraphNode } from '@/lib/litegraph/src/litegraph' -import { - LGraphEventMode, - type Positionable, - Reroute -} from '@/lib/litegraph/src/litegraph' +import type { LGraphNode, Positionable } from '@/lib/litegraph/src/litegraph' +import { LGraphEventMode, Reroute } from '@/lib/litegraph/src/litegraph' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' import { app } from '@/scripts/app' diff --git a/tests-ui/tests/composables/functional/useChainCallback.test.ts b/src/composables/functional/useChainCallback.test.ts similarity index 100% rename from tests-ui/tests/composables/functional/useChainCallback.test.ts rename to src/composables/functional/useChainCallback.test.ts diff --git a/tests-ui/tests/composables/graph/useSelectionState.test.ts b/src/composables/graph/useSelectionState.test.ts similarity index 100% rename from tests-ui/tests/composables/graph/useSelectionState.test.ts rename to src/composables/graph/useSelectionState.test.ts diff --git a/tests-ui/tests/composables/maskeditor/useCanvasHistory.test.ts b/src/composables/maskeditor/useCanvasHistory.test.ts similarity index 100% rename from tests-ui/tests/composables/maskeditor/useCanvasHistory.test.ts rename to src/composables/maskeditor/useCanvasHistory.test.ts diff --git a/tests-ui/tests/composables/maskeditor/useCanvasManager.test.ts b/src/composables/maskeditor/useCanvasManager.test.ts similarity index 100% rename from tests-ui/tests/composables/maskeditor/useCanvasManager.test.ts rename to src/composables/maskeditor/useCanvasManager.test.ts diff --git a/tests-ui/tests/composables/maskeditor/useCanvasTools.test.ts b/src/composables/maskeditor/useCanvasTools.test.ts similarity index 100% rename from tests-ui/tests/composables/maskeditor/useCanvasTools.test.ts rename to src/composables/maskeditor/useCanvasTools.test.ts diff --git a/tests-ui/tests/composables/maskeditor/useImageLoader.test.ts b/src/composables/maskeditor/useImageLoader.test.ts similarity index 100% rename from tests-ui/tests/composables/maskeditor/useImageLoader.test.ts rename to src/composables/maskeditor/useImageLoader.test.ts diff --git a/tests-ui/tests/composables/node/useNodePricing.test.ts b/src/composables/node/useNodePricing.test.ts similarity index 100% rename from tests-ui/tests/composables/node/useNodePricing.test.ts rename to src/composables/node/useNodePricing.test.ts diff --git a/tests-ui/tests/composables/node/useCreditsBadge.test.ts b/src/composables/node/usePriceBadge.test.ts similarity index 95% rename from tests-ui/tests/composables/node/useCreditsBadge.test.ts rename to src/composables/node/usePriceBadge.test.ts index eb894566a..d646dd962 100644 --- a/tests-ui/tests/composables/node/useCreditsBadge.test.ts +++ b/src/composables/node/usePriceBadge.test.ts @@ -2,7 +2,7 @@ import { describe, expect, vi } from 'vitest' import { LGraphNode } from '@/lib/litegraph/src/litegraph' -import { subgraphTest } from '../../litegraph/subgraph/fixtures/subgraphFixtures' +import { subgraphTest } from '@/lib/litegraph/src/subgraph/__fixtures__/subgraphFixtures' import { usePriceBadge } from '@/composables/node/usePriceBadge' diff --git a/tests-ui/tests/composables/useWatchWidget.test.ts b/src/composables/node/useWatchWidget.test.ts similarity index 100% rename from tests-ui/tests/composables/useWatchWidget.test.ts rename to src/composables/node/useWatchWidget.test.ts diff --git a/tests-ui/tests/composables/useCompletionSummary.test.ts b/src/composables/queue/useCompletionSummary.test.ts similarity index 100% rename from tests-ui/tests/composables/useCompletionSummary.test.ts rename to src/composables/queue/useCompletionSummary.test.ts diff --git a/tests-ui/tests/composables/useJobList.test.ts b/src/composables/queue/useJobList.test.ts similarity index 100% rename from tests-ui/tests/composables/useJobList.test.ts rename to src/composables/queue/useJobList.test.ts diff --git a/tests-ui/tests/composables/useJobMenu.test.ts b/src/composables/queue/useJobMenu.test.ts similarity index 99% rename from tests-ui/tests/composables/useJobMenu.test.ts rename to src/composables/queue/useJobMenu.test.ts index 0bd876951..ff4100918 100644 --- a/tests-ui/tests/composables/useJobMenu.test.ts +++ b/src/composables/queue/useJobMenu.test.ts @@ -284,7 +284,7 @@ describe('useJobMenu', () => { await nextTick() const entry = findActionEntry(jobMenuEntries.value, 'report-error') - entry?.onClick?.() + void entry?.onClick?.() expect(dialogServiceMock.showExecutionErrorDialog).toHaveBeenCalledWith( error @@ -460,7 +460,7 @@ describe('useJobMenu', () => { await nextTick() const entry = findActionEntry(jobMenuEntries.value, 'download') - entry?.onClick?.() + void entry?.onClick?.() expect(downloadFileMock).toHaveBeenCalledWith('https://asset') }) @@ -471,7 +471,7 @@ describe('useJobMenu', () => { await nextTick() const entry = findActionEntry(jobMenuEntries.value, 'download') - entry?.onClick?.() + void entry?.onClick?.() expect(downloadFileMock).not.toHaveBeenCalled() }) diff --git a/tests-ui/tests/composables/useQueueProgress.test.ts b/src/composables/queue/useQueueProgress.test.ts similarity index 100% rename from tests-ui/tests/composables/useQueueProgress.test.ts rename to src/composables/queue/useQueueProgress.test.ts diff --git a/tests-ui/tests/composables/useResultGallery.test.ts b/src/composables/queue/useResultGallery.test.ts similarity index 100% rename from tests-ui/tests/composables/useResultGallery.test.ts rename to src/composables/queue/useResultGallery.test.ts diff --git a/tests-ui/tests/composables/BrowserTabTitle.test.ts b/src/composables/useBrowserTabTitle.test.ts similarity index 100% rename from tests-ui/tests/composables/BrowserTabTitle.test.ts rename to src/composables/useBrowserTabTitle.test.ts diff --git a/tests-ui/tests/composables/useCachedRequest.test.ts b/src/composables/useCachedRequest.test.ts similarity index 100% rename from tests-ui/tests/composables/useCachedRequest.test.ts rename to src/composables/useCachedRequest.test.ts diff --git a/tests-ui/tests/composables/clipboard.test.ts b/src/composables/useCopy.test.ts similarity index 100% rename from tests-ui/tests/composables/clipboard.test.ts rename to src/composables/useCopy.test.ts diff --git a/tests-ui/tests/composables/useCoreCommands.test.ts b/src/composables/useCoreCommands.test.ts similarity index 98% rename from tests-ui/tests/composables/useCoreCommands.test.ts rename to src/composables/useCoreCommands.test.ts index 3c86faa5a..82e3439bc 100644 --- a/tests-ui/tests/composables/useCoreCommands.test.ts +++ b/src/composables/useCoreCommands.test.ts @@ -9,8 +9,8 @@ import { app } from '@/scripts/app' // Mock vue-i18n for useExternalLink const mockLocale = ref('en') -vi.mock('vue-i18n', async (importOriginal) => { - const actual = await importOriginal() +vi.mock('vue-i18n', async () => { + const actual = await vi.importActual('vue-i18n') return { ...actual, useI18n: vi.fn(() => ({ diff --git a/tests-ui/tests/composables/useErrorHandling.test.ts b/src/composables/useErrorHandling.test.ts similarity index 100% rename from tests-ui/tests/composables/useErrorHandling.test.ts rename to src/composables/useErrorHandling.test.ts diff --git a/tests-ui/tests/composables/useExternalLink.test.ts b/src/composables/useExternalLink.test.ts similarity index 100% rename from tests-ui/tests/composables/useExternalLink.test.ts rename to src/composables/useExternalLink.test.ts diff --git a/tests-ui/tests/composables/useFeatureFlags.test.ts b/src/composables/useFeatureFlags.test.ts similarity index 100% rename from tests-ui/tests/composables/useFeatureFlags.test.ts rename to src/composables/useFeatureFlags.test.ts diff --git a/tests-ui/tests/composables/useLoad3d.test.ts b/src/composables/useLoad3d.test.ts similarity index 100% rename from tests-ui/tests/composables/useLoad3d.test.ts rename to src/composables/useLoad3d.test.ts diff --git a/tests-ui/tests/composables/useLoad3dDrag.test.ts b/src/composables/useLoad3dDrag.test.ts similarity index 100% rename from tests-ui/tests/composables/useLoad3dDrag.test.ts rename to src/composables/useLoad3dDrag.test.ts diff --git a/tests-ui/tests/composables/useLoad3dViewer.test.ts b/src/composables/useLoad3dViewer.test.ts similarity index 100% rename from tests-ui/tests/composables/useLoad3dViewer.test.ts rename to src/composables/useLoad3dViewer.test.ts diff --git a/tests-ui/tests/composables/useServerLogs.test.ts b/src/composables/useServerLogs.test.ts similarity index 100% rename from tests-ui/tests/composables/useServerLogs.test.ts rename to src/composables/useServerLogs.test.ts diff --git a/tests-ui/tests/composables/useTemplateFiltering.test.ts b/src/composables/useTemplateFiltering.test.ts similarity index 100% rename from tests-ui/tests/composables/useTemplateFiltering.test.ts rename to src/composables/useTemplateFiltering.test.ts diff --git a/tests-ui/tests/widgets/proxyWidget.test.ts b/src/core/graph/subgraph/proxyWidget.test.ts similarity index 98% rename from tests-ui/tests/widgets/proxyWidget.test.ts rename to src/core/graph/subgraph/proxyWidget.test.ts index 940ee66f0..c0d41d23e 100644 --- a/tests-ui/tests/widgets/proxyWidget.test.ts +++ b/src/core/graph/subgraph/proxyWidget.test.ts @@ -8,7 +8,7 @@ import type { LGraphCanvas, SubgraphNode } from '@/lib/litegraph/src/litegraph' import { createTestSubgraph, createTestSubgraphNode -} from '../litegraph/subgraph/fixtures/subgraphHelpers' +} from '@/lib/litegraph/src/subgraph/__fixtures__/subgraphHelpers' const canvasEl: Partial = { addEventListener() {} } const canvas: Partial = { canvas: canvasEl as HTMLCanvasElement } diff --git a/tests-ui/tests/widgets/dynamicCombo.test.ts b/src/core/graph/widgets/dynamicWidgets.test.ts similarity index 100% rename from tests-ui/tests/widgets/dynamicCombo.test.ts rename to src/core/graph/widgets/dynamicWidgets.test.ts diff --git a/tests-ui/tests/extensions/contextMenuExtensionName.test.ts b/src/extensions/core/contextMenuFilter.name.test.ts similarity index 100% rename from tests-ui/tests/extensions/contextMenuExtensionName.test.ts rename to src/extensions/core/contextMenuFilter.name.test.ts diff --git a/tests-ui/tests/extensions/contextMenuExtension.test.ts b/src/extensions/core/contextMenuFilter.test.ts similarity index 100% rename from tests-ui/tests/extensions/contextMenuExtension.test.ts rename to src/extensions/core/contextMenuFilter.test.ts diff --git a/tests-ui/tests/dynamicPrompts.test.ts b/src/extensions/core/dynamicPrompts.test.ts similarity index 100% rename from tests-ui/tests/dynamicPrompts.test.ts rename to src/extensions/core/dynamicPrompts.test.ts diff --git a/tests-ui/tests/litegraph/utils/CanvasPointer.deviceDetection.test.ts b/src/lib/litegraph/src/CanvasPointer.deviceDetection.test.ts similarity index 100% rename from tests-ui/tests/litegraph/utils/CanvasPointer.deviceDetection.test.ts rename to src/lib/litegraph/src/CanvasPointer.deviceDetection.test.ts diff --git a/tests-ui/tests/litegraph/core/ConfigureGraph.test.ts b/src/lib/litegraph/src/LGraph.configure.test.ts similarity index 92% rename from tests-ui/tests/litegraph/core/ConfigureGraph.test.ts rename to src/lib/litegraph/src/LGraph.configure.test.ts index 935ec1f28..2401dfe30 100644 --- a/tests-ui/tests/litegraph/core/ConfigureGraph.test.ts +++ b/src/lib/litegraph/src/LGraph.configure.test.ts @@ -3,7 +3,7 @@ import { describe } from 'vitest' import { LGraph } from '@/lib/litegraph/src/litegraph' -import { dirtyTest } from './fixtures/testExtensions' +import { dirtyTest } from './__fixtures__/testExtensions' describe.skip('LGraph configure()', () => { dirtyTest( diff --git a/tests-ui/tests/litegraph/core/LGraph_constructor.test.ts b/src/lib/litegraph/src/LGraph.constructor.test.ts similarity index 90% rename from tests-ui/tests/litegraph/core/LGraph_constructor.test.ts rename to src/lib/litegraph/src/LGraph.constructor.test.ts index 62720b9c0..4e214cae5 100644 --- a/tests-ui/tests/litegraph/core/LGraph_constructor.test.ts +++ b/src/lib/litegraph/src/LGraph.constructor.test.ts @@ -3,7 +3,7 @@ import { describe } from 'vitest' import { LGraph } from '@/lib/litegraph/src/litegraph' -import { dirtyTest } from './fixtures/testExtensions' +import { dirtyTest } from './__fixtures__/testExtensions' describe.skip('LGraph (constructor only)', () => { dirtyTest( diff --git a/tests-ui/tests/litegraph/core/serialise.test.ts b/src/lib/litegraph/src/LGraph.serialise.test.ts similarity index 94% rename from tests-ui/tests/litegraph/core/serialise.test.ts rename to src/lib/litegraph/src/LGraph.serialise.test.ts index 629c50e98..3eee37c6a 100644 --- a/tests-ui/tests/litegraph/core/serialise.test.ts +++ b/src/lib/litegraph/src/LGraph.serialise.test.ts @@ -3,7 +3,7 @@ import { describe } from 'vitest' import { LGraph, LGraphGroup, LGraphNode } from '@/lib/litegraph/src/litegraph' import type { ISerialisedGraph } from '@/lib/litegraph/src/litegraph' -import { test } from './fixtures/testExtensions' +import { test } from './__fixtures__/testExtensions' describe('LGraph Serialisation', () => { test('can (de)serialise node / group titles', ({ expect, minimalGraph }) => { diff --git a/tests-ui/tests/litegraph/core/LGraph.test.ts b/src/lib/litegraph/src/LGraph.test.ts similarity index 86% rename from tests-ui/tests/litegraph/core/LGraph.test.ts rename to src/lib/litegraph/src/LGraph.test.ts index 61d3da734..1c2f38da2 100644 --- a/tests-ui/tests/litegraph/core/LGraph.test.ts +++ b/src/lib/litegraph/src/LGraph.test.ts @@ -1,10 +1,43 @@ -import { describe } from 'vitest' +import { describe, expect, it } from 'vitest' import { LGraph, LGraphNode, LiteGraph } from '@/lib/litegraph/src/litegraph' -import { test } from './fixtures/testExtensions' +import { test } from './__fixtures__/testExtensions' + +function swapNodes(nodes: LGraphNode[]) { + const firstNode = nodes[0] + const lastNode = nodes[nodes.length - 1] + nodes[0] = lastNode + nodes[nodes.length - 1] = firstNode + return nodes +} + +function createGraph(...nodes: LGraphNode[]) { + const graph = new LGraph() + nodes.forEach((node) => graph.add(node)) + return graph +} + +class DummyNode extends LGraphNode { + constructor() { + super('dummy') + } +} describe('LGraph', () => { + it('should serialize deterministic node order', async () => { + LiteGraph.registerNodeType('dummy', DummyNode) + const node1 = new DummyNode() + const node2 = new DummyNode() + const graph = createGraph(node1, node2) + + const result1 = graph.serialize({ sortNodes: true }) + expect(result1.nodes).not.toHaveLength(0) + graph._nodes = swapNodes(graph.nodes) + const result2 = graph.serialize({ sortNodes: true }) + + expect(result1).toEqual(result2) + }) test('can be instantiated', ({ expect }) => { // @ts-expect-error Intentional - extra holds any / all consumer data that should be serialised const graph = new LGraph({ extra: 'TestGraph' }) diff --git a/tests-ui/tests/litegraph/core/LGraphButton.test.ts b/src/lib/litegraph/src/LGraphButton.test.ts similarity index 98% rename from tests-ui/tests/litegraph/core/LGraphButton.test.ts rename to src/lib/litegraph/src/LGraphButton.test.ts index 18830d8a4..83d17abc7 100644 --- a/tests-ui/tests/litegraph/core/LGraphButton.test.ts +++ b/src/lib/litegraph/src/LGraphButton.test.ts @@ -1,7 +1,6 @@ import { describe, expect, it, vi } from 'vitest' -import { LGraphButton } from '@/lib/litegraph/src/litegraph' -import { Rectangle } from '@/lib/litegraph/src/litegraph' +import { LGraphButton, Rectangle } from '@/lib/litegraph/src/litegraph' describe('LGraphButton', () => { describe('Constructor', () => { diff --git a/tests-ui/tests/litegraph/core/LGraphCanvas.titleButtons.test.ts b/src/lib/litegraph/src/LGraphCanvas.titleButtons.test.ts similarity index 98% rename from tests-ui/tests/litegraph/core/LGraphCanvas.titleButtons.test.ts rename to src/lib/litegraph/src/LGraphCanvas.titleButtons.test.ts index f02fe005e..5c814f95e 100644 --- a/tests-ui/tests/litegraph/core/LGraphCanvas.titleButtons.test.ts +++ b/src/lib/litegraph/src/LGraphCanvas.titleButtons.test.ts @@ -1,7 +1,10 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import { LGraphCanvas } from '@/lib/litegraph/src/litegraph' -import { LGraphNode, LiteGraph } from '@/lib/litegraph/src/litegraph' +import { + LGraphCanvas, + LGraphNode, + LiteGraph +} from '@/lib/litegraph/src/litegraph' describe('LGraphCanvas Title Button Rendering', () => { let canvas: LGraphCanvas diff --git a/tests-ui/tests/litegraph/core/LGraphGroup.test.ts b/src/lib/litegraph/src/LGraphGroup.test.ts similarity index 84% rename from tests-ui/tests/litegraph/core/LGraphGroup.test.ts rename to src/lib/litegraph/src/LGraphGroup.test.ts index a50b33256..589e5a958 100644 --- a/tests-ui/tests/litegraph/core/LGraphGroup.test.ts +++ b/src/lib/litegraph/src/LGraphGroup.test.ts @@ -2,7 +2,7 @@ import { describe, expect } from 'vitest' import { LGraphGroup } from '@/lib/litegraph/src/litegraph' -import { test } from './fixtures/testExtensions' +import { test } from './__fixtures__/testExtensions' describe('LGraphGroup', () => { test('serializes to the existing format', () => { diff --git a/tests-ui/tests/litegraph/core/LGraphNode.resize.test.ts b/src/lib/litegraph/src/LGraphNode.resize.test.ts similarity index 98% rename from tests-ui/tests/litegraph/core/LGraphNode.resize.test.ts rename to src/lib/litegraph/src/LGraphNode.resize.test.ts index eb967fcab..b3f971eed 100644 --- a/tests-ui/tests/litegraph/core/LGraphNode.resize.test.ts +++ b/src/lib/litegraph/src/LGraphNode.resize.test.ts @@ -2,7 +2,7 @@ import { beforeEach, describe, expect } from 'vitest' import { LGraphNode, LiteGraph } from '@/lib/litegraph/src/litegraph' -import { test } from './fixtures/testExtensions' +import { test } from './__fixtures__/testExtensions' describe('LGraphNode resize functionality', () => { let node: LGraphNode diff --git a/tests-ui/tests/litegraph/core/LGraphNode.test.ts b/src/lib/litegraph/src/LGraphNode.test.ts similarity index 99% rename from tests-ui/tests/litegraph/core/LGraphNode.test.ts rename to src/lib/litegraph/src/LGraphNode.test.ts index a08a228f2..6451e7dfe 100644 --- a/tests-ui/tests/litegraph/core/LGraphNode.test.ts +++ b/src/lib/litegraph/src/LGraphNode.test.ts @@ -13,7 +13,7 @@ import { NodeOutputSlot } from '@/lib/litegraph/src/litegraph' -import { test } from './fixtures/testExtensions' +import { test } from './__fixtures__/testExtensions' function getMockISerialisedNode( data: Partial diff --git a/tests-ui/tests/litegraph/core/LGraphNode.titleButtons.test.ts b/src/lib/litegraph/src/LGraphNode.titleButtons.test.ts similarity index 98% rename from tests-ui/tests/litegraph/core/LGraphNode.titleButtons.test.ts rename to src/lib/litegraph/src/LGraphNode.titleButtons.test.ts index 6599d6562..1c645cfd9 100644 --- a/tests-ui/tests/litegraph/core/LGraphNode.titleButtons.test.ts +++ b/src/lib/litegraph/src/LGraphNode.titleButtons.test.ts @@ -1,8 +1,7 @@ import { describe, expect, it, vi } from 'vitest' -import { LGraphButton } from '@/lib/litegraph/src/litegraph' import type { LGraphCanvas } from '@/lib/litegraph/src/litegraph' -import { LGraphNode } from '@/lib/litegraph/src/litegraph' +import { LGraphButton, LGraphNode } from '@/lib/litegraph/src/litegraph' describe('LGraphNode Title Buttons', () => { describe('addTitleButton', () => { diff --git a/tests-ui/tests/litegraph/core/LGraphNode.widgetOrder.test.ts b/src/lib/litegraph/src/LGraphNode.widgetOrder.test.ts similarity index 100% rename from tests-ui/tests/litegraph/core/LGraphNode.widgetOrder.test.ts rename to src/lib/litegraph/src/LGraphNode.widgetOrder.test.ts diff --git a/tests-ui/tests/litegraph/core/LGraphNodeProperties.test.ts b/src/lib/litegraph/src/LGraphNodeProperties.test.ts similarity index 100% rename from tests-ui/tests/litegraph/core/LGraphNodeProperties.test.ts rename to src/lib/litegraph/src/LGraphNodeProperties.test.ts diff --git a/tests-ui/tests/litegraph/core/LLink.test.ts b/src/lib/litegraph/src/LLink.test.ts similarity index 89% rename from tests-ui/tests/litegraph/core/LLink.test.ts rename to src/lib/litegraph/src/LLink.test.ts index a1cdfbea0..fc3f5918b 100644 --- a/tests-ui/tests/litegraph/core/LLink.test.ts +++ b/src/lib/litegraph/src/LLink.test.ts @@ -2,7 +2,7 @@ import { describe, expect } from 'vitest' import { LLink } from '@/lib/litegraph/src/litegraph' -import { test } from './fixtures/testExtensions' +import { test } from './__fixtures__/testExtensions' describe('LLink', () => { test('matches previous snapshot', () => { diff --git a/tests-ui/tests/litegraph/core/fixtures/assets/floatingBranch.json b/src/lib/litegraph/src/__fixtures__/assets/floatingBranch.json similarity index 100% rename from tests-ui/tests/litegraph/core/fixtures/assets/floatingBranch.json rename to src/lib/litegraph/src/__fixtures__/assets/floatingBranch.json diff --git a/tests-ui/tests/litegraph/core/fixtures/assets/floatingLink.json b/src/lib/litegraph/src/__fixtures__/assets/floatingLink.json similarity index 100% rename from tests-ui/tests/litegraph/core/fixtures/assets/floatingLink.json rename to src/lib/litegraph/src/__fixtures__/assets/floatingLink.json diff --git a/tests-ui/tests/litegraph/core/fixtures/assets/linkedNodes.json b/src/lib/litegraph/src/__fixtures__/assets/linkedNodes.json similarity index 100% rename from tests-ui/tests/litegraph/core/fixtures/assets/linkedNodes.json rename to src/lib/litegraph/src/__fixtures__/assets/linkedNodes.json diff --git a/tests-ui/tests/litegraph/core/fixtures/assets/reroutesComplex.json b/src/lib/litegraph/src/__fixtures__/assets/reroutesComplex.json similarity index 100% rename from tests-ui/tests/litegraph/core/fixtures/assets/reroutesComplex.json rename to src/lib/litegraph/src/__fixtures__/assets/reroutesComplex.json diff --git a/tests-ui/tests/litegraph/core/fixtures/assets/testGraphs.ts b/src/lib/litegraph/src/__fixtures__/assets/testGraphs.ts similarity index 100% rename from tests-ui/tests/litegraph/core/fixtures/assets/testGraphs.ts rename to src/lib/litegraph/src/__fixtures__/assets/testGraphs.ts diff --git a/tests-ui/tests/litegraph/core/fixtures/testExtensions.ts b/src/lib/litegraph/src/__fixtures__/testExtensions.ts similarity index 93% rename from tests-ui/tests/litegraph/core/fixtures/testExtensions.ts rename to src/lib/litegraph/src/__fixtures__/testExtensions.ts index 300b23814..6aff55438 100644 --- a/tests-ui/tests/litegraph/core/fixtures/testExtensions.ts +++ b/src/lib/litegraph/src/__fixtures__/testExtensions.ts @@ -1,3 +1,4 @@ +// oxlint-disable no-empty-pattern import { test as baseTest } from 'vitest' import { LGraph } from '@/lib/litegraph/src/LGraph' @@ -33,7 +34,6 @@ interface DirtyFixtures { } export const test = baseTest.extend({ - // eslint-disable-next-line no-empty-pattern minimalGraph: async ({}, use) => { // Before each test function const serialisable = structuredClone(minimalSerialisableGraph) @@ -48,7 +48,7 @@ export const test = baseTest.extend({ floatingLink as unknown as ISerialisedGraph ), linkedNodesGraph: structuredClone(linkedNodes as unknown as ISerialisedGraph), - // eslint-disable-next-line no-empty-pattern + floatingBranchGraph: async ({}, use) => { const cloned = structuredClone( floatingBranch as unknown as ISerialisedGraph @@ -56,7 +56,7 @@ export const test = baseTest.extend({ const graph = new LGraph(cloned) await use(graph) }, - // eslint-disable-next-line no-empty-pattern + reroutesComplexGraph: async ({}, use) => { const cloned = structuredClone( reroutesComplex as unknown as ISerialisedGraph @@ -68,7 +68,6 @@ export const test = baseTest.extend({ /** Test that use {@link DirtyFixtures}. One test per file. */ export const dirtyTest = test.extend({ - // eslint-disable-next-line no-empty-pattern basicSerialisableGraph: async ({}, use) => { if (!basicSerialisableGraph.nodes) throw new Error('Invalid test object') diff --git a/tests-ui/tests/litegraph/core/__snapshots__/LGraph.test.ts.snap b/src/lib/litegraph/src/__snapshots__/LGraph.test.ts.snap similarity index 100% rename from tests-ui/tests/litegraph/core/__snapshots__/LGraph.test.ts.snap rename to src/lib/litegraph/src/__snapshots__/LGraph.test.ts.snap diff --git a/tests-ui/tests/litegraph/core/__snapshots__/LGraphGroup.test.ts.snap b/src/lib/litegraph/src/__snapshots__/LGraphGroup.test.ts.snap similarity index 100% rename from tests-ui/tests/litegraph/core/__snapshots__/LGraphGroup.test.ts.snap rename to src/lib/litegraph/src/__snapshots__/LGraphGroup.test.ts.snap diff --git a/tests-ui/tests/litegraph/core/__snapshots__/LLink.test.ts.snap b/src/lib/litegraph/src/__snapshots__/LLink.test.ts.snap similarity index 100% rename from tests-ui/tests/litegraph/core/__snapshots__/LLink.test.ts.snap rename to src/lib/litegraph/src/__snapshots__/LLink.test.ts.snap diff --git a/tests-ui/tests/litegraph/core/__snapshots__/litegraph.test.ts.snap b/src/lib/litegraph/src/__snapshots__/litegraph.test.ts.snap similarity index 100% rename from tests-ui/tests/litegraph/core/__snapshots__/litegraph.test.ts.snap rename to src/lib/litegraph/src/__snapshots__/litegraph.test.ts.snap diff --git a/tests-ui/tests/litegraph/core/LinkConnector.test.ts b/src/lib/litegraph/src/canvas/LinkConnector.core.test.ts similarity index 99% rename from tests-ui/tests/litegraph/core/LinkConnector.test.ts rename to src/lib/litegraph/src/canvas/LinkConnector.core.test.ts index 486ee4f78..65b468940 100644 --- a/tests-ui/tests/litegraph/core/LinkConnector.test.ts +++ b/src/lib/litegraph/src/canvas/LinkConnector.core.test.ts @@ -1,3 +1,4 @@ +// oxlint-disable no-empty-pattern import { test as baseTest, describe, expect, vi } from 'vitest' import type { diff --git a/tests-ui/tests/litegraph/core/LinkConnector.integration.test.ts b/src/lib/litegraph/src/canvas/LinkConnector.integration.test.ts similarity index 99% rename from tests-ui/tests/litegraph/core/LinkConnector.integration.test.ts rename to src/lib/litegraph/src/canvas/LinkConnector.integration.test.ts index e026ba097..3c4368c5a 100644 --- a/tests-ui/tests/litegraph/core/LinkConnector.integration.test.ts +++ b/src/lib/litegraph/src/canvas/LinkConnector.integration.test.ts @@ -1,3 +1,4 @@ +// oxlint-disable no-empty-pattern // TODO: Fix these tests after migration import { afterEach, describe, expect, vi } from 'vitest' @@ -9,7 +10,7 @@ import type { } from '@/lib/litegraph/src/litegraph' import { LGraphNode, LLink, LinkConnector } from '@/lib/litegraph/src/litegraph' -import { test as baseTest } from './fixtures/testExtensions' +import { test as baseTest } from '../__fixtures__/testExtensions' import type { ConnectingLink } from '@/lib/litegraph/src/interfaces' interface TestContext { @@ -1077,6 +1078,7 @@ describe('LinkConnector Integration', () => { const originalParentChain = LLink.getReroutes(graph, toReroute) const sortAndJoin = (numbers: Iterable) => + // oxlint-disable-next-line require-array-sort-compare [...numbers].sort().join(',') const hasIdenticalLinks = (a: Reroute, b: Reroute) => sortAndJoin(a.linkIds) === sortAndJoin(b.linkIds) && diff --git a/tests-ui/tests/litegraph/canvas/LinkConnector.test.ts b/src/lib/litegraph/src/canvas/LinkConnector.test.ts similarity index 100% rename from tests-ui/tests/litegraph/canvas/LinkConnector.test.ts rename to src/lib/litegraph/src/canvas/LinkConnector.test.ts diff --git a/tests-ui/tests/litegraph/canvas/LinkConnectorSubgraphInputValidation.test.ts b/src/lib/litegraph/src/canvas/LinkConnectorSubgraphInputValidation.test.ts similarity index 99% rename from tests-ui/tests/litegraph/canvas/LinkConnectorSubgraphInputValidation.test.ts rename to src/lib/litegraph/src/canvas/LinkConnectorSubgraphInputValidation.test.ts index 072a0fb4c..3d9740c4f 100644 --- a/tests-ui/tests/litegraph/canvas/LinkConnectorSubgraphInputValidation.test.ts +++ b/src/lib/litegraph/src/canvas/LinkConnectorSubgraphInputValidation.test.ts @@ -12,7 +12,7 @@ import { ToInputFromIoNodeLink } from '@/lib/litegraph/src/canvas/ToInputFromIoN import type { NodeInputSlot } from '@/lib/litegraph/src/litegraph' import { LinkDirection } from '@/lib/litegraph/src/types/globalEnums' -import { createTestSubgraph } from '../subgraph/fixtures/subgraphHelpers' +import { createTestSubgraph } from '../subgraph/__fixtures__/subgraphHelpers' describe('LinkConnector SubgraphInput connection validation', () => { let connector: LinkConnector diff --git a/tests-ui/tests/litegraph/core/ToOutputRenderLink.test.ts b/src/lib/litegraph/src/canvas/ToOutputRenderLink.test.ts similarity index 94% rename from tests-ui/tests/litegraph/core/ToOutputRenderLink.test.ts rename to src/lib/litegraph/src/canvas/ToOutputRenderLink.test.ts index 7899f8924..73bfec657 100644 --- a/tests-ui/tests/litegraph/core/ToOutputRenderLink.test.ts +++ b/src/lib/litegraph/src/canvas/ToOutputRenderLink.test.ts @@ -1,7 +1,9 @@ import { describe, expect, it, vi } from 'vitest' -import { ToOutputRenderLink } from '@/lib/litegraph/src/litegraph' -import { LinkDirection } from '@/lib/litegraph/src/litegraph' +import { + LinkDirection, + ToOutputRenderLink +} from '@/lib/litegraph/src/litegraph' describe('ToOutputRenderLink', () => { describe('connectToOutput', () => { diff --git a/tests-ui/tests/litegraph/core/contextMenuCompat.test.ts b/src/lib/litegraph/src/contextMenuCompat.test.ts similarity index 100% rename from tests-ui/tests/litegraph/core/contextMenuCompat.test.ts rename to src/lib/litegraph/src/contextMenuCompat.test.ts diff --git a/tests-ui/tests/litegraph/infrastructure/Rectangle.resize.test.ts b/src/lib/litegraph/src/infrastructure/Rectangle.resize.test.ts similarity index 100% rename from tests-ui/tests/litegraph/infrastructure/Rectangle.resize.test.ts rename to src/lib/litegraph/src/infrastructure/Rectangle.resize.test.ts diff --git a/tests-ui/tests/litegraph/infrastructure/Rectangle.test.ts b/src/lib/litegraph/src/infrastructure/Rectangle.test.ts similarity index 99% rename from tests-ui/tests/litegraph/infrastructure/Rectangle.test.ts rename to src/lib/litegraph/src/infrastructure/Rectangle.test.ts index b89545845..b4fc56091 100644 --- a/tests-ui/tests/litegraph/infrastructure/Rectangle.test.ts +++ b/src/lib/litegraph/src/infrastructure/Rectangle.test.ts @@ -1,3 +1,4 @@ +// oxlint-disable no-empty-pattern import { test as baseTest, describe, expect, vi } from 'vitest' import { Rectangle } from '@/lib/litegraph/src/litegraph' @@ -6,7 +7,6 @@ import type { Point, Size } from '@/lib/litegraph/src/litegraph' // TODO: If there's a common test context, use it here // For now, we'll define a simple context for Rectangle tests const test = baseTest.extend<{ rect: Rectangle }>({ - // eslint-disable-next-line no-empty-pattern rect: async ({}, use) => { await use(new Rectangle()) } diff --git a/tests-ui/tests/litegraph/core/litegraph.test.ts b/src/lib/litegraph/src/litegraph.test.ts similarity index 87% rename from tests-ui/tests/litegraph/core/litegraph.test.ts rename to src/lib/litegraph/src/litegraph.test.ts index cc58100fa..936b82f6e 100644 --- a/tests-ui/tests/litegraph/core/litegraph.test.ts +++ b/src/lib/litegraph/src/litegraph.test.ts @@ -1,10 +1,13 @@ import { clamp } from 'es-toolkit/compat' import { beforeEach, describe, expect, vi } from 'vitest' -import { LiteGraphGlobal } from '@/lib/litegraph/src/litegraph' -import { LGraphCanvas, LiteGraph } from '@/lib/litegraph/src/litegraph' +import { + LiteGraphGlobal, + LGraphCanvas, + LiteGraph +} from '@/lib/litegraph/src/litegraph' -import { test } from './fixtures/testExtensions' +import { test } from './__fixtures__/testExtensions' describe('Litegraph module', () => { test('contains a global export', ({ expect }) => { diff --git a/tests-ui/tests/litegraph/core/measure.test.ts b/src/lib/litegraph/src/measure.test.ts similarity index 100% rename from tests-ui/tests/litegraph/core/measure.test.ts rename to src/lib/litegraph/src/measure.test.ts diff --git a/tests-ui/tests/litegraph/core/NodeSlot.test.ts b/src/lib/litegraph/src/node/NodeSlot.test.ts similarity index 100% rename from tests-ui/tests/litegraph/core/NodeSlot.test.ts rename to src/lib/litegraph/src/node/NodeSlot.test.ts diff --git a/tests-ui/tests/litegraph/subgraph/ExecutableNodeDTO.test.ts b/src/lib/litegraph/src/subgraph/ExecutableNodeDTO.test.ts similarity index 98% rename from tests-ui/tests/litegraph/subgraph/ExecutableNodeDTO.test.ts rename to src/lib/litegraph/src/subgraph/ExecutableNodeDTO.test.ts index 4418d9422..003fa59e1 100644 --- a/tests-ui/tests/litegraph/subgraph/ExecutableNodeDTO.test.ts +++ b/src/lib/litegraph/src/subgraph/ExecutableNodeDTO.test.ts @@ -1,14 +1,17 @@ // TODO: Fix these tests after migration import { describe, expect, it, vi } from 'vitest' -import { LGraph, LGraphNode } from '@/lib/litegraph/src/litegraph' -import { ExecutableNodeDTO } from '@/lib/litegraph/src/litegraph' +import { + LGraph, + LGraphNode, + ExecutableNodeDTO +} from '@/lib/litegraph/src/litegraph' import { createNestedSubgraphs, createTestSubgraph, createTestSubgraphNode -} from './fixtures/subgraphHelpers' +} from './__fixtures__/subgraphHelpers' describe.skip('ExecutableNodeDTO Creation', () => { it('should create DTO from regular node', () => { diff --git a/tests-ui/tests/litegraph/subgraph/Subgraph.test.ts b/src/lib/litegraph/src/subgraph/Subgraph.test.ts similarity index 97% rename from tests-ui/tests/litegraph/subgraph/Subgraph.test.ts rename to src/lib/litegraph/src/subgraph/Subgraph.test.ts index 773bcca00..4266a6073 100644 --- a/tests-ui/tests/litegraph/subgraph/Subgraph.test.ts +++ b/src/lib/litegraph/src/subgraph/Subgraph.test.ts @@ -8,16 +8,19 @@ */ import { describe, expect, it } from 'vitest' -import { RecursionError } from '@/lib/litegraph/src/litegraph' -import { LGraph, Subgraph } from '@/lib/litegraph/src/litegraph' -import { createUuidv4 } from '@/lib/litegraph/src/litegraph' +import { + createUuidv4, + RecursionError, + LGraph, + Subgraph +} from '@/lib/litegraph/src/litegraph' -import { subgraphTest } from './fixtures/subgraphFixtures' +import { subgraphTest } from './__fixtures__/subgraphFixtures' import { assertSubgraphStructure, createTestSubgraph, createTestSubgraphData -} from './fixtures/subgraphHelpers' +} from './__fixtures__/subgraphHelpers' describe.skip('Subgraph Construction', () => { it('should create a subgraph with minimal data', () => { diff --git a/tests-ui/tests/litegraph/subgraph/SubgraphConversion.test.ts b/src/lib/litegraph/src/subgraph/SubgraphConversion.test.ts similarity index 98% rename from tests-ui/tests/litegraph/subgraph/SubgraphConversion.test.ts rename to src/lib/litegraph/src/subgraph/SubgraphConversion.test.ts index f978710ae..4e5cbae35 100644 --- a/tests-ui/tests/litegraph/subgraph/SubgraphConversion.test.ts +++ b/src/lib/litegraph/src/subgraph/SubgraphConversion.test.ts @@ -1,18 +1,17 @@ // TODO: Fix these tests after migration import { assert, describe, expect, it } from 'vitest' -import type { LGraph } from '@/lib/litegraph/src/litegraph' import { - type ISlotType, LGraphGroup, LGraphNode, LiteGraph } from '@/lib/litegraph/src/litegraph' +import type { LGraph, ISlotType } from '@/lib/litegraph/src/litegraph' import { createTestSubgraph, createTestSubgraphNode -} from './fixtures/subgraphHelpers' +} from './__fixtures__/subgraphHelpers' function createNode( graph: LGraph, diff --git a/tests-ui/tests/litegraph/subgraph/SubgraphEdgeCases.test.ts b/src/lib/litegraph/src/subgraph/SubgraphEdgeCases.test.ts similarity index 99% rename from tests-ui/tests/litegraph/subgraph/SubgraphEdgeCases.test.ts rename to src/lib/litegraph/src/subgraph/SubgraphEdgeCases.test.ts index 8734575b1..3251a4d88 100644 --- a/tests-ui/tests/litegraph/subgraph/SubgraphEdgeCases.test.ts +++ b/src/lib/litegraph/src/subgraph/SubgraphEdgeCases.test.ts @@ -13,7 +13,7 @@ import { createNestedSubgraphs, createTestSubgraph, createTestSubgraphNode -} from './fixtures/subgraphHelpers' +} from './__fixtures__/subgraphHelpers' describe.skip('SubgraphEdgeCases - Recursion Detection', () => { it('should handle circular subgraph references without crashing', () => { diff --git a/tests-ui/tests/litegraph/subgraph/SubgraphEvents.test.ts b/src/lib/litegraph/src/subgraph/SubgraphEvents.test.ts similarity index 99% rename from tests-ui/tests/litegraph/subgraph/SubgraphEvents.test.ts rename to src/lib/litegraph/src/subgraph/SubgraphEvents.test.ts index abff4fa7a..ade35e919 100644 --- a/tests-ui/tests/litegraph/subgraph/SubgraphEvents.test.ts +++ b/src/lib/litegraph/src/subgraph/SubgraphEvents.test.ts @@ -1,8 +1,8 @@ // TODO: Fix these tests after migration import { describe, expect, vi } from 'vitest' -import { subgraphTest } from './fixtures/subgraphFixtures' -import { verifyEventSequence } from './fixtures/subgraphHelpers' +import { subgraphTest } from './__fixtures__/subgraphFixtures' +import { verifyEventSequence } from './__fixtures__/subgraphHelpers' describe.skip('SubgraphEvents - Event Payload Verification', () => { subgraphTest( diff --git a/tests-ui/tests/litegraph/subgraph/SubgraphIO.test.ts b/src/lib/litegraph/src/subgraph/SubgraphIO.test.ts similarity index 99% rename from tests-ui/tests/litegraph/subgraph/SubgraphIO.test.ts rename to src/lib/litegraph/src/subgraph/SubgraphIO.test.ts index 25f2ecd10..c3fa79970 100644 --- a/tests-ui/tests/litegraph/subgraph/SubgraphIO.test.ts +++ b/src/lib/litegraph/src/subgraph/SubgraphIO.test.ts @@ -5,11 +5,11 @@ import { LGraphNode } from '@/lib/litegraph/src/litegraph' import { ToInputFromIoNodeLink } from '@/lib/litegraph/src/canvas/ToInputFromIoNodeLink' import { LinkDirection } from '@/lib/litegraph/src//types/globalEnums' -import { subgraphTest } from './fixtures/subgraphFixtures' +import { subgraphTest } from './__fixtures__/subgraphFixtures' import { createTestSubgraph, createTestSubgraphNode -} from './fixtures/subgraphHelpers' +} from './__fixtures__/subgraphHelpers' describe('SubgraphIO - Input Slot Dual-Nature Behavior', () => { subgraphTest( diff --git a/tests-ui/tests/litegraph/subgraph/SubgraphMemory.test.ts b/src/lib/litegraph/src/subgraph/SubgraphMemory.test.ts similarity index 99% rename from tests-ui/tests/litegraph/subgraph/SubgraphMemory.test.ts rename to src/lib/litegraph/src/subgraph/SubgraphMemory.test.ts index 5e6770d1e..6a4e662bf 100644 --- a/tests-ui/tests/litegraph/subgraph/SubgraphMemory.test.ts +++ b/src/lib/litegraph/src/subgraph/SubgraphMemory.test.ts @@ -3,11 +3,11 @@ import { describe, expect, it, vi } from 'vitest' import { LGraph } from '@/lib/litegraph/src/litegraph' -import { subgraphTest } from './fixtures/subgraphFixtures' +import { subgraphTest } from './__fixtures__/subgraphFixtures' import { createTestSubgraph, createTestSubgraphNode -} from './fixtures/subgraphHelpers' +} from './__fixtures__/subgraphHelpers' describe.skip('SubgraphNode Memory Management', () => { describe.skip('Event Listener Cleanup', () => { diff --git a/tests-ui/tests/litegraph/subgraph/SubgraphNode.test.ts b/src/lib/litegraph/src/subgraph/SubgraphNode.test.ts similarity index 99% rename from tests-ui/tests/litegraph/subgraph/SubgraphNode.test.ts rename to src/lib/litegraph/src/subgraph/SubgraphNode.test.ts index 40ad062c6..e82e03149 100644 --- a/tests-ui/tests/litegraph/subgraph/SubgraphNode.test.ts +++ b/src/lib/litegraph/src/subgraph/SubgraphNode.test.ts @@ -9,11 +9,11 @@ import { describe, expect, it, vi } from 'vitest' import { LGraph, Subgraph } from '@/lib/litegraph/src/litegraph' -import { subgraphTest } from './fixtures/subgraphFixtures' +import { subgraphTest } from './__fixtures__/subgraphFixtures' import { createTestSubgraph, createTestSubgraphNode -} from './fixtures/subgraphHelpers' +} from './__fixtures__/subgraphHelpers' describe.skip('SubgraphNode Construction', () => { it('should create a SubgraphNode from a subgraph definition', () => { diff --git a/tests-ui/tests/litegraph/subgraph/SubgraphNode.titleButton.test.ts b/src/lib/litegraph/src/subgraph/SubgraphNode.titleButton.test.ts similarity index 99% rename from tests-ui/tests/litegraph/subgraph/SubgraphNode.titleButton.test.ts rename to src/lib/litegraph/src/subgraph/SubgraphNode.titleButton.test.ts index 9bc64802c..c76e9d5ee 100644 --- a/tests-ui/tests/litegraph/subgraph/SubgraphNode.titleButton.test.ts +++ b/src/lib/litegraph/src/subgraph/SubgraphNode.titleButton.test.ts @@ -7,7 +7,7 @@ import type { LGraphCanvas } from '@/lib/litegraph/src/litegraph' import { createTestSubgraph, createTestSubgraphNode -} from './fixtures/subgraphHelpers' +} from './__fixtures__/subgraphHelpers' describe.skip('SubgraphNode Title Button', () => { describe.skip('Constructor', () => { diff --git a/tests-ui/tests/litegraph/subgraph/SubgraphSerialization.test.ts b/src/lib/litegraph/src/subgraph/SubgraphSerialization.test.ts similarity index 99% rename from tests-ui/tests/litegraph/subgraph/SubgraphSerialization.test.ts rename to src/lib/litegraph/src/subgraph/SubgraphSerialization.test.ts index 35e113b0e..f773fe63d 100644 --- a/tests-ui/tests/litegraph/subgraph/SubgraphSerialization.test.ts +++ b/src/lib/litegraph/src/subgraph/SubgraphSerialization.test.ts @@ -12,7 +12,7 @@ import { LGraph, Subgraph } from '@/lib/litegraph/src/litegraph' import { createTestSubgraph, createTestSubgraphNode -} from './fixtures/subgraphHelpers' +} from './__fixtures__/subgraphHelpers' describe.skip('SubgraphSerialization - Basic Serialization', () => { it('should save and load simple subgraphs', () => { diff --git a/tests-ui/tests/litegraph/subgraph/SubgraphSlotConnections.test.ts b/src/lib/litegraph/src/subgraph/SubgraphSlotConnections.test.ts similarity index 96% rename from tests-ui/tests/litegraph/subgraph/SubgraphSlotConnections.test.ts rename to src/lib/litegraph/src/subgraph/SubgraphSlotConnections.test.ts index 0c10b782a..515c0ac22 100644 --- a/tests-ui/tests/litegraph/subgraph/SubgraphSlotConnections.test.ts +++ b/src/lib/litegraph/src/subgraph/SubgraphSlotConnections.test.ts @@ -1,21 +1,24 @@ // TODO: Fix these tests after migration import { describe, expect, it, vi } from 'vitest' -import { LinkConnector } from '@/lib/litegraph/src/litegraph' -import { ToInputFromIoNodeLink } from '@/lib/litegraph/src/litegraph' -import { SUBGRAPH_INPUT_ID } from '@/lib/litegraph/src/litegraph' -import { LGraphNode, type LinkNetwork } from '@/lib/litegraph/src/litegraph' -import type { NodeInputSlot } from '@/lib/litegraph/src/litegraph' -import type { NodeOutputSlot } from '@/lib/litegraph/src/litegraph' import { + SUBGRAPH_INPUT_ID, + LinkConnector, + ToInputFromIoNodeLink, + LGraphNode, isSubgraphInput, isSubgraphOutput } from '@/lib/litegraph/src/litegraph' +import type { + LinkNetwork, + NodeInputSlot, + NodeOutputSlot +} from '@/lib/litegraph/src/litegraph' import { createTestSubgraph, createTestSubgraphNode -} from './fixtures/subgraphHelpers' +} from './__fixtures__/subgraphHelpers' describe.skip('Subgraph slot connections', () => { describe.skip('SubgraphInput connections', () => { diff --git a/tests-ui/tests/litegraph/subgraph/SubgraphSlotVisualFeedback.test.ts b/src/lib/litegraph/src/subgraph/SubgraphSlotVisualFeedback.test.ts similarity index 98% rename from tests-ui/tests/litegraph/subgraph/SubgraphSlotVisualFeedback.test.ts rename to src/lib/litegraph/src/subgraph/SubgraphSlotVisualFeedback.test.ts index 0ed819a4f..baf842812 100644 --- a/tests-ui/tests/litegraph/subgraph/SubgraphSlotVisualFeedback.test.ts +++ b/src/lib/litegraph/src/subgraph/SubgraphSlotVisualFeedback.test.ts @@ -3,7 +3,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { LGraphNode } from '@/lib/litegraph/src/litegraph' -import { createTestSubgraph } from './fixtures/subgraphHelpers' +import { createTestSubgraph } from './__fixtures__/subgraphHelpers' describe.skip('SubgraphSlot visual feedback', () => { let mockCtx: CanvasRenderingContext2D diff --git a/tests-ui/tests/litegraph/subgraph/SubgraphWidgetPromotion.test.ts b/src/lib/litegraph/src/subgraph/SubgraphWidgetPromotion.test.ts similarity index 97% rename from tests-ui/tests/litegraph/subgraph/SubgraphWidgetPromotion.test.ts rename to src/lib/litegraph/src/subgraph/SubgraphWidgetPromotion.test.ts index 36793829d..d938b300a 100644 --- a/tests-ui/tests/litegraph/subgraph/SubgraphWidgetPromotion.test.ts +++ b/src/lib/litegraph/src/subgraph/SubgraphWidgetPromotion.test.ts @@ -1,16 +1,18 @@ // TODO: Fix these tests after migration import { describe, expect, it } from 'vitest' -import type { ISlotType, Subgraph } from '@/lib/litegraph/src/litegraph' -import { LGraphNode } from '@/lib/litegraph/src/litegraph' -import type { TWidgetType } from '@/lib/litegraph/src/litegraph' -import { BaseWidget } from '@/lib/litegraph/src/litegraph' +import type { + ISlotType, + Subgraph, + TWidgetType +} from '@/lib/litegraph/src/litegraph' +import { BaseWidget, LGraphNode } from '@/lib/litegraph/src/litegraph' import { createEventCapture, createTestSubgraph, createTestSubgraphNode -} from './fixtures/subgraphHelpers' +} from './__fixtures__/subgraphHelpers' // Helper to create a node with a widget function createNodeWithWidget( diff --git a/tests-ui/tests/litegraph/subgraph/fixtures/README.md b/src/lib/litegraph/src/subgraph/__fixtures__/README.md similarity index 100% rename from tests-ui/tests/litegraph/subgraph/fixtures/README.md rename to src/lib/litegraph/src/subgraph/__fixtures__/README.md diff --git a/tests-ui/tests/litegraph/subgraph/fixtures/subgraphFixtures.ts b/src/lib/litegraph/src/subgraph/__fixtures__/subgraphFixtures.ts similarity index 93% rename from tests-ui/tests/litegraph/subgraph/fixtures/subgraphFixtures.ts rename to src/lib/litegraph/src/subgraph/__fixtures__/subgraphFixtures.ts index 02134868c..6f88d1c8f 100644 --- a/tests-ui/tests/litegraph/subgraph/fixtures/subgraphFixtures.ts +++ b/src/lib/litegraph/src/subgraph/__fixtures__/subgraphFixtures.ts @@ -1,3 +1,4 @@ +// oxlint-disable no-empty-pattern /** * Vitest Fixtures for Subgraph Testing * @@ -9,7 +10,7 @@ import type { Subgraph } from '@/lib/litegraph/src/litegraph' import { LGraph } from '@/lib/litegraph/src/litegraph' import type { SubgraphNode } from '@/lib/litegraph/src/subgraph/SubgraphNode' -import { test } from '../../core/fixtures/testExtensions' +import { test } from '../../__fixtures__/testExtensions' import { createEventCapture, createNestedSubgraphs, @@ -59,7 +60,7 @@ interface SubgraphFixtures { */ export const subgraphTest = test.extend({ // @ts-expect-error TODO: Fix after merge - fixture use parameter type - // eslint-disable-next-line no-empty-pattern + emptySubgraph: async ({}, use: (value: unknown) => Promise) => { const subgraph = createTestSubgraph({ name: 'Empty Test Subgraph', @@ -72,7 +73,7 @@ export const subgraphTest = test.extend({ }, // @ts-expect-error TODO: Fix after merge - fixture use parameter type - // eslint-disable-next-line no-empty-pattern + simpleSubgraph: async ({}, use: (value: unknown) => Promise) => { const subgraph = createTestSubgraph({ name: 'Simple Test Subgraph', @@ -85,7 +86,7 @@ export const subgraphTest = test.extend({ }, // @ts-expect-error TODO: Fix after merge - fixture use parameter type - // eslint-disable-next-line no-empty-pattern + complexSubgraph: async ({}, use: (value: unknown) => Promise) => { const subgraph = createTestSubgraph({ name: 'Complex Test Subgraph', @@ -105,7 +106,7 @@ export const subgraphTest = test.extend({ }, // @ts-expect-error TODO: Fix after merge - fixture use parameter type - // eslint-disable-next-line no-empty-pattern + nestedSubgraph: async ({}, use: (value: unknown) => Promise) => { const nested = createNestedSubgraphs({ depth: 3, @@ -118,7 +119,7 @@ export const subgraphTest = test.extend({ }, // @ts-expect-error TODO: Fix after merge - fixture use parameter type - // eslint-disable-next-line no-empty-pattern + subgraphWithNode: async ({}, use: (value: unknown) => Promise) => { // Create the subgraph definition const subgraph = createTestSubgraph({ @@ -146,7 +147,7 @@ export const subgraphTest = test.extend({ }, // @ts-expect-error TODO: Fix after merge - fixture use parameter type - // eslint-disable-next-line no-empty-pattern + eventCapture: async ({}, use: (value: unknown) => Promise) => { const subgraph = createTestSubgraph({ name: 'Event Test Subgraph' diff --git a/tests-ui/tests/litegraph/subgraph/fixtures/subgraphHelpers.ts b/src/lib/litegraph/src/subgraph/__fixtures__/subgraphHelpers.ts similarity index 100% rename from tests-ui/tests/litegraph/subgraph/fixtures/subgraphHelpers.ts rename to src/lib/litegraph/src/subgraph/__fixtures__/subgraphHelpers.ts diff --git a/tests-ui/tests/litegraph/subgraph/fixtures/testSubgraphs.json b/src/lib/litegraph/src/subgraph/__fixtures__/testSubgraphs.json similarity index 100% rename from tests-ui/tests/litegraph/subgraph/fixtures/testSubgraphs.json rename to src/lib/litegraph/src/subgraph/__fixtures__/testSubgraphs.json diff --git a/tests-ui/tests/litegraph/subgraph/subgraphUtils.test.ts b/src/lib/litegraph/src/subgraph/subgraphUtils.test.ts similarity index 98% rename from tests-ui/tests/litegraph/subgraph/subgraphUtils.test.ts rename to src/lib/litegraph/src/subgraph/subgraphUtils.test.ts index c1cea490f..a5f5893b0 100644 --- a/tests-ui/tests/litegraph/subgraph/subgraphUtils.test.ts +++ b/src/lib/litegraph/src/subgraph/subgraphUtils.test.ts @@ -1,8 +1,8 @@ // TODO: Fix these tests after migration import { describe, expect, it } from 'vitest' -import { LGraph } from '@/lib/litegraph/src/litegraph' import { + LGraph, findUsedSubgraphIds, getDirectSubgraphIds } from '@/lib/litegraph/src/litegraph' @@ -11,7 +11,7 @@ import type { UUID } from '@/lib/litegraph/src/litegraph' import { createTestSubgraph, createTestSubgraphNode -} from './fixtures/subgraphHelpers' +} from './__fixtures__/subgraphHelpers' describe.skip('subgraphUtils', () => { describe.skip('getDirectSubgraphIds', () => { diff --git a/tests-ui/tests/litegraph/utils/spaceDistribution.test.ts b/src/lib/litegraph/src/utils/spaceDistribution.test.ts similarity index 90% rename from tests-ui/tests/litegraph/utils/spaceDistribution.test.ts rename to src/lib/litegraph/src/utils/spaceDistribution.test.ts index 4d029762f..254c13da6 100644 --- a/tests-ui/tests/litegraph/utils/spaceDistribution.test.ts +++ b/src/lib/litegraph/src/utils/spaceDistribution.test.ts @@ -1,9 +1,7 @@ import { describe, expect, it } from 'vitest' -import { - type SpaceRequest, - distributeSpace -} from '@/lib/litegraph/src/litegraph' +import { distributeSpace } from '@/lib/litegraph/src/litegraph' +import type { SpaceRequest } from '@/lib/litegraph/src/litegraph' describe('distributeSpace', () => { it('should distribute space according to minimum sizes when space is limited', () => { diff --git a/tests-ui/tests/litegraph/utils/textUtils.test.ts b/src/lib/litegraph/src/utils/textUtils.test.ts similarity index 100% rename from tests-ui/tests/litegraph/utils/textUtils.test.ts rename to src/lib/litegraph/src/utils/textUtils.test.ts diff --git a/tests-ui/tests/litegraph/utils/widget.test.ts b/src/lib/litegraph/src/utils/widget.test.ts similarity index 100% rename from tests-ui/tests/litegraph/utils/widget.test.ts rename to src/lib/litegraph/src/utils/widget.test.ts diff --git a/tests-ui/tests/lib/litegraph/src/widgets/ComboWidget.test.ts b/src/lib/litegraph/src/widgets/ComboWidget.test.ts similarity index 99% rename from tests-ui/tests/lib/litegraph/src/widgets/ComboWidget.test.ts rename to src/lib/litegraph/src/widgets/ComboWidget.test.ts index c8291ff0a..b1605906f 100644 --- a/tests-ui/tests/lib/litegraph/src/widgets/ComboWidget.test.ts +++ b/src/lib/litegraph/src/widgets/ComboWidget.test.ts @@ -1,13 +1,14 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' +import type * as LGraphCanvasModule from '@/lib/litegraph/src/LGraphCanvas' import { LGraphNode, LiteGraph } from '@/lib/litegraph/src/litegraph' import type { CanvasPointerEvent } from '@/lib/litegraph/src/types/events' import type { IComboWidget } from '@/lib/litegraph/src/types/widgets' import { ComboWidget } from '@/lib/litegraph/src/widgets/ComboWidget' -const { LGraphCanvas } = await vi.importActual< - typeof import('@/lib/litegraph/src/LGraphCanvas') ->('@/lib/litegraph/src/LGraphCanvas') +const { LGraphCanvas } = await vi.importActual( + '@/lib/litegraph/src/LGraphCanvas' +) type LGraphCanvasType = InstanceType interface MockWidgetConfig extends Omit { diff --git a/tests-ui/platform/assets/components/AssetBrowserModal.test.ts b/src/platform/assets/components/AssetBrowserModal.test.ts similarity index 100% rename from tests-ui/platform/assets/components/AssetBrowserModal.test.ts rename to src/platform/assets/components/AssetBrowserModal.test.ts diff --git a/tests-ui/platform/assets/components/AssetFilterBar.test.ts b/src/platform/assets/components/AssetFilterBar.test.ts similarity index 100% rename from tests-ui/platform/assets/components/AssetFilterBar.test.ts rename to src/platform/assets/components/AssetFilterBar.test.ts diff --git a/tests-ui/platform/assets/composables/useAssetBrowser.test.ts b/src/platform/assets/composables/useAssetBrowser.test.ts similarity index 100% rename from tests-ui/platform/assets/composables/useAssetBrowser.test.ts rename to src/platform/assets/composables/useAssetBrowser.test.ts diff --git a/tests-ui/platform/assets/composables/useAssetBrowserDialog.test.ts b/src/platform/assets/composables/useAssetBrowserDialog.test.ts similarity index 100% rename from tests-ui/platform/assets/composables/useAssetBrowserDialog.test.ts rename to src/platform/assets/composables/useAssetBrowserDialog.test.ts diff --git a/tests-ui/platform/assets/composables/useAssetFilterOptions.test.ts b/src/platform/assets/composables/useAssetFilterOptions.test.ts similarity index 100% rename from tests-ui/platform/assets/composables/useAssetFilterOptions.test.ts rename to src/platform/assets/composables/useAssetFilterOptions.test.ts diff --git a/tests-ui/tests/services/assetService.test.ts b/src/platform/assets/services/assetService.test.ts similarity index 100% rename from tests-ui/tests/services/assetService.test.ts rename to src/platform/assets/services/assetService.test.ts diff --git a/tests-ui/tests/platform/assets/utils/assetMetadataUtils.test.ts b/src/platform/assets/utils/assetMetadataUtils.test.ts similarity index 100% rename from tests-ui/tests/platform/assets/utils/assetMetadataUtils.test.ts rename to src/platform/assets/utils/assetMetadataUtils.test.ts diff --git a/tests-ui/platform/assets/utils/createModelNodeFromAsset.test.ts b/src/platform/assets/utils/createModelNodeFromAsset.test.ts similarity index 92% rename from tests-ui/platform/assets/utils/createModelNodeFromAsset.test.ts rename to src/platform/assets/utils/createModelNodeFromAsset.test.ts index 2c7d6c303..e8b12587b 100644 --- a/tests-ui/platform/assets/utils/createModelNodeFromAsset.test.ts +++ b/src/platform/assets/utils/createModelNodeFromAsset.test.ts @@ -1,11 +1,14 @@ +// oxlint-disable no-misused-spread import { beforeEach, describe, expect, it, vi } from 'vitest' -import { type Raw, markRaw } from 'vue' +import { markRaw } from 'vue' +import type { Raw } from 'vue' -import { - type LGraphNode, - LiteGraph, - type Subgraph -} from '@/lib/litegraph/src/litegraph' +import type { LGraphNode, Subgraph } from '@/lib/litegraph/src/litegraph' +import { LiteGraph } from '@/lib/litegraph/src/litegraph' +import type * as LitegraphModule from '@/lib/litegraph/src/litegraph' +import type * as ModelToNodeStoreModule from '@/stores/modelToNodeStore' +import type * as WorkflowStoreModule from '@/platform/workflow/management/stores/workflowStore' +import type * as LitegraphServiceModule from '@/services/litegraphService' import type { AssetItem } from '@/platform/assets/schemas/assetSchema' import { createModelNodeFromAsset } from '@/platform/assets/utils/createModelNodeFromAsset' import { useWorkflowStore } from '@/platform/workflow/management/stores/workflowStore' @@ -20,8 +23,7 @@ vi.mock('@/scripts/api', () => ({ } })) vi.mock('@/stores/modelToNodeStore', async (importOriginal) => { - const actual = - await importOriginal() + const actual = await importOriginal() return { ...actual, useModelToNodeStore: vi.fn() @@ -30,10 +32,7 @@ vi.mock('@/stores/modelToNodeStore', async (importOriginal) => { vi.mock( '@/platform/workflow/management/stores/workflowStore', async (importOriginal) => { - const actual = - await importOriginal< - typeof import('@/platform/workflow/management/stores/workflowStore') - >() + const actual = await importOriginal() return { ...actual, useWorkflowStore: vi.fn() @@ -41,16 +40,14 @@ vi.mock( } ) vi.mock('@/services/litegraphService', async (importOriginal) => { - const actual = - await importOriginal() + const actual = await importOriginal() return { ...actual, useLitegraphService: vi.fn() } }) vi.mock('@/lib/litegraph/src/litegraph', async (importOriginal) => { - const actual = - await importOriginal() + const actual = await importOriginal() return { ...actual, LiteGraph: { @@ -93,7 +90,7 @@ async function createMockNode(overrides?: { } = overrides || {} const { LGraphNode: ActualLGraphNode } = await vi.importActual< - typeof import('@/lib/litegraph/src/litegraph') + typeof LitegraphModule >('@/lib/litegraph/src/litegraph') if (!hasWidgets) { @@ -232,9 +229,9 @@ describe('createModelNodeFromAsset', () => { it('should add node to active subgraph when present', async () => { const asset = createMockAsset() const mockNode = await createMockNode() - const { Subgraph } = await vi.importActual< - typeof import('@/lib/litegraph/src/litegraph') - >('@/lib/litegraph/src/litegraph') + const { Subgraph } = await vi.importActual( + '@/lib/litegraph/src/litegraph' + ) const mockSubgraph = markRaw( Object.create(Subgraph.prototype, { add: { value: vi.fn() } diff --git a/tests-ui/tests/platform/cloud/subscription/components/PricingTable.test.ts b/src/platform/cloud/subscription/components/PricingTable.test.ts similarity index 100% rename from tests-ui/tests/platform/cloud/subscription/components/PricingTable.test.ts rename to src/platform/cloud/subscription/components/PricingTable.test.ts diff --git a/tests-ui/tests/platform/cloud/subscription/components/SubscriptionPanel.test.ts b/src/platform/cloud/subscription/components/SubscriptionPanel.test.ts similarity index 100% rename from tests-ui/tests/platform/cloud/subscription/components/SubscriptionPanel.test.ts rename to src/platform/cloud/subscription/components/SubscriptionPanel.test.ts diff --git a/tests-ui/tests/platform/cloud/subscription/useSubscription.test.ts b/src/platform/cloud/subscription/composables/useSubscription.test.ts similarity index 100% rename from tests-ui/tests/platform/cloud/subscription/useSubscription.test.ts rename to src/platform/cloud/subscription/composables/useSubscription.test.ts diff --git a/tests-ui/tests/platform/cloud/subscription/composables/useSubscriptionActions.test.ts b/src/platform/cloud/subscription/composables/useSubscriptionActions.test.ts similarity index 100% rename from tests-ui/tests/platform/cloud/subscription/composables/useSubscriptionActions.test.ts rename to src/platform/cloud/subscription/composables/useSubscriptionActions.test.ts diff --git a/tests-ui/tests/platform/cloud/subscription/useSubscriptionCancellationWatcher.test.ts b/src/platform/cloud/subscription/composables/useSubscriptionCancellationWatcher.test.ts similarity index 98% rename from tests-ui/tests/platform/cloud/subscription/useSubscriptionCancellationWatcher.test.ts rename to src/platform/cloud/subscription/composables/useSubscriptionCancellationWatcher.test.ts index 94db27549..12e114aed 100644 --- a/tests-ui/tests/platform/cloud/subscription/useSubscriptionCancellationWatcher.test.ts +++ b/src/platform/cloud/subscription/composables/useSubscriptionCancellationWatcher.test.ts @@ -4,11 +4,12 @@ import type { EffectScope } from 'vue' import type { CloudSubscriptionStatusResponse } from '@/platform/cloud/subscription/composables/useSubscription' import { useSubscriptionCancellationWatcher } from '@/platform/cloud/subscription/composables/useSubscriptionCancellationWatcher' +import type { TelemetryProvider } from '@/platform/telemetry/types' describe('useSubscriptionCancellationWatcher', () => { const trackMonthlySubscriptionCancelled = vi.fn() const telemetryMock: Pick< - import('@/platform/telemetry/types').TelemetryProvider, + TelemetryProvider, 'trackMonthlySubscriptionCancelled' > = { trackMonthlySubscriptionCancelled diff --git a/tests-ui/tests/platform/cloud/subscription/composables/useSubscriptionCredits.test.ts b/src/platform/cloud/subscription/composables/useSubscriptionCredits.test.ts similarity index 97% rename from tests-ui/tests/platform/cloud/subscription/composables/useSubscriptionCredits.test.ts rename to src/platform/cloud/subscription/composables/useSubscriptionCredits.test.ts index 230e7ceb7..dde7313e4 100644 --- a/tests-ui/tests/platform/cloud/subscription/composables/useSubscriptionCredits.test.ts +++ b/src/platform/cloud/subscription/composables/useSubscriptionCredits.test.ts @@ -1,5 +1,6 @@ import { createPinia, setActivePinia } from 'pinia' import { beforeEach, describe, expect, it, vi } from 'vitest' +import type * as VueI18nModule from 'vue-i18n' import * as comfyCredits from '@/base/credits/comfyCredits' import { useSubscriptionCredits } from '@/platform/cloud/subscription/composables/useSubscriptionCredits' @@ -11,7 +12,7 @@ type GetCustomerBalanceResponse = vi.mock( 'vue-i18n', - async (importOriginal: () => Promise) => { + async (importOriginal: () => Promise) => { const actual = await importOriginal() return { ...actual, diff --git a/tests-ui/tests/platform/navigation/preservedQueryManager.test.ts b/src/platform/navigation/preservedQueryManager.test.ts similarity index 100% rename from tests-ui/tests/platform/navigation/preservedQueryManager.test.ts rename to src/platform/navigation/preservedQueryManager.test.ts diff --git a/tests-ui/fixtures/historyFixtures.ts b/src/platform/remote/comfyui/history/__fixtures__/historyFixtures.ts similarity index 100% rename from tests-ui/fixtures/historyFixtures.ts rename to src/platform/remote/comfyui/history/__fixtures__/historyFixtures.ts diff --git a/tests-ui/tests/platform/remote/comfyui/history/adapters/v2ToV1Adapter.test.ts b/src/platform/remote/comfyui/history/adapters/v2ToV1Adapter.test.ts similarity index 50% rename from tests-ui/tests/platform/remote/comfyui/history/adapters/v2ToV1Adapter.test.ts rename to src/platform/remote/comfyui/history/adapters/v2ToV1Adapter.test.ts index c047782a0..e9dff7d38 100644 --- a/tests-ui/tests/platform/remote/comfyui/history/adapters/v2ToV1Adapter.test.ts +++ b/src/platform/remote/comfyui/history/adapters/v2ToV1Adapter.test.ts @@ -10,14 +10,263 @@ import type { HistoryResponseV2 } from '@/platform/remote/comfyui/history/types/ import { expectedV1Fixture, historyV2Fixture -} from '@tests-ui/fixtures/historyFixtures' -import { - historyV2FiveItemsSorting, - historyV2MultipleNoTimestamp, - historyV2WithMissingTimestamp -} from '@tests-ui/fixtures/historySortingFixtures' +} from '@/platform/remote/comfyui/history/__fixtures__/historyFixtures' import type { HistoryTaskItem } from '@/platform/remote/comfyui/history/types/historyV1Types' +const historyV2WithMissingTimestamp: HistoryResponseV2 = { + history: [ + { + prompt_id: 'item-timestamp-1000', + prompt: { + priority: 0, + prompt_id: 'item-timestamp-1000', + extra_data: { + client_id: 'test-client' + } + }, + outputs: { + '1': { + images: [{ filename: 'test1.png', type: 'output', subfolder: '' }] + } + }, + status: { + status_str: 'success', + completed: true, + messages: [ + [ + 'execution_success', + { prompt_id: 'item-timestamp-1000', timestamp: 1000 } + ] + ] + } + }, + { + prompt_id: 'item-timestamp-2000', + prompt: { + priority: 0, + prompt_id: 'item-timestamp-2000', + extra_data: { + client_id: 'test-client' + } + }, + outputs: { + '2': { + images: [{ filename: 'test2.png', type: 'output', subfolder: '' }] + } + }, + status: { + status_str: 'success', + completed: true, + messages: [ + [ + 'execution_success', + { prompt_id: 'item-timestamp-2000', timestamp: 2000 } + ] + ] + } + }, + { + prompt_id: 'item-no-timestamp', + prompt: { + priority: 0, + prompt_id: 'item-no-timestamp', + extra_data: { + client_id: 'test-client' + } + }, + outputs: { + '3': { + images: [{ filename: 'test3.png', type: 'output', subfolder: '' }] + } + }, + status: { + status_str: 'success', + completed: true, + messages: [] + } + } + ] +} + +const historyV2FiveItemsSorting: HistoryResponseV2 = { + history: [ + { + prompt_id: 'item-timestamp-3000', + prompt: { + priority: 0, + prompt_id: 'item-timestamp-3000', + extra_data: { client_id: 'test-client' } + }, + outputs: { + '1': { + images: [{ filename: 'test1.png', type: 'output', subfolder: '' }] + } + }, + status: { + status_str: 'success', + completed: true, + messages: [ + [ + 'execution_success', + { prompt_id: 'item-timestamp-3000', timestamp: 3000 } + ] + ] + } + }, + { + prompt_id: 'item-timestamp-1000', + prompt: { + priority: 0, + prompt_id: 'item-timestamp-1000', + extra_data: { client_id: 'test-client' } + }, + outputs: { + '2': { + images: [{ filename: 'test2.png', type: 'output', subfolder: '' }] + } + }, + status: { + status_str: 'success', + completed: true, + messages: [ + [ + 'execution_success', + { prompt_id: 'item-timestamp-1000', timestamp: 1000 } + ] + ] + } + }, + { + prompt_id: 'item-timestamp-5000', + prompt: { + priority: 0, + prompt_id: 'item-timestamp-5000', + extra_data: { client_id: 'test-client' } + }, + outputs: { + '3': { + images: [{ filename: 'test3.png', type: 'output', subfolder: '' }] + } + }, + status: { + status_str: 'success', + completed: true, + messages: [ + [ + 'execution_success', + { prompt_id: 'item-timestamp-5000', timestamp: 5000 } + ] + ] + } + }, + { + prompt_id: 'item-timestamp-2000', + prompt: { + priority: 0, + prompt_id: 'item-timestamp-2000', + extra_data: { client_id: 'test-client' } + }, + outputs: { + '4': { + images: [{ filename: 'test4.png', type: 'output', subfolder: '' }] + } + }, + status: { + status_str: 'success', + completed: true, + messages: [ + [ + 'execution_success', + { prompt_id: 'item-timestamp-2000', timestamp: 2000 } + ] + ] + } + }, + { + prompt_id: 'item-timestamp-4000', + prompt: { + priority: 0, + prompt_id: 'item-timestamp-4000', + extra_data: { client_id: 'test-client' } + }, + outputs: { + '5': { + images: [{ filename: 'test5.png', type: 'output', subfolder: '' }] + } + }, + status: { + status_str: 'success', + completed: true, + messages: [ + [ + 'execution_success', + { prompt_id: 'item-timestamp-4000', timestamp: 4000 } + ] + ] + } + } + ] +} + +const historyV2MultipleNoTimestamp: HistoryResponseV2 = { + history: [ + { + prompt_id: 'item-no-timestamp-1', + prompt: { + priority: 0, + prompt_id: 'item-no-timestamp-1', + extra_data: { client_id: 'test-client' } + }, + outputs: { + '1': { + images: [{ filename: 'test1.png', type: 'output', subfolder: '' }] + } + }, + status: { + status_str: 'success', + completed: true, + messages: [] + } + }, + { + prompt_id: 'item-no-timestamp-2', + prompt: { + priority: 0, + prompt_id: 'item-no-timestamp-2', + extra_data: { client_id: 'test-client' } + }, + outputs: { + '2': { + images: [{ filename: 'test2.png', type: 'output', subfolder: '' }] + } + }, + status: { + status_str: 'success', + completed: true, + messages: [] + } + }, + { + prompt_id: 'item-no-timestamp-3', + prompt: { + priority: 0, + prompt_id: 'item-no-timestamp-3', + extra_data: { client_id: 'test-client' } + }, + outputs: { + '3': { + images: [{ filename: 'test3.png', type: 'output', subfolder: '' }] + } + }, + status: { + status_str: 'success', + completed: true, + messages: [] + } + } + ] +} + function findResultByPromptId( result: HistoryTaskItem[], promptId: string diff --git a/tests-ui/tests/platform/remote/comfyui/history/fetchers/fetchHistoryV1.test.ts b/src/platform/remote/comfyui/history/fetchers/fetchHistoryV1.test.ts similarity index 93% rename from tests-ui/tests/platform/remote/comfyui/history/fetchers/fetchHistoryV1.test.ts rename to src/platform/remote/comfyui/history/fetchers/fetchHistoryV1.test.ts index e0869778e..b2fa1cfa2 100644 --- a/tests-ui/tests/platform/remote/comfyui/history/fetchers/fetchHistoryV1.test.ts +++ b/src/platform/remote/comfyui/history/fetchers/fetchHistoryV1.test.ts @@ -5,7 +5,7 @@ import { describe, expect, it, vi } from 'vitest' import { fetchHistoryV1 } from '@/platform/remote/comfyui/history/fetchers/fetchHistoryV1' -import { historyV1RawResponse } from '@tests-ui/fixtures/historyFixtures' +import { historyV1RawResponse } from '@/platform/remote/comfyui/history/__fixtures__/historyFixtures' describe('fetchHistoryV1', () => { const mockFetchApi = vi.fn().mockResolvedValue({ diff --git a/tests-ui/tests/platform/remote/comfyui/history/fetchers/fetchHistoryV2.test.ts b/src/platform/remote/comfyui/history/fetchers/fetchHistoryV2.test.ts similarity index 94% rename from tests-ui/tests/platform/remote/comfyui/history/fetchers/fetchHistoryV2.test.ts rename to src/platform/remote/comfyui/history/fetchers/fetchHistoryV2.test.ts index ff0e28750..fd8aa8bbd 100644 --- a/tests-ui/tests/platform/remote/comfyui/history/fetchers/fetchHistoryV2.test.ts +++ b/src/platform/remote/comfyui/history/fetchers/fetchHistoryV2.test.ts @@ -8,7 +8,7 @@ import { fetchHistoryV2 } from '@/platform/remote/comfyui/history/fetchers/fetch import { expectedV1Fixture, historyV2Fixture -} from '@tests-ui/fixtures/historyFixtures' +} from '@/platform/remote/comfyui/history/__fixtures__/historyFixtures' describe('fetchHistoryV2', () => { const mockFetchApi = vi.fn().mockResolvedValue({ diff --git a/tests-ui/tests/platform/remote/comfyui/history/reconciliation.test.ts b/src/platform/remote/comfyui/history/reconciliation.test.ts similarity index 100% rename from tests-ui/tests/platform/remote/comfyui/history/reconciliation.test.ts rename to src/platform/remote/comfyui/history/reconciliation.test.ts diff --git a/tests-ui/tests/platform/remote/comfyui/jobs/fetchJobs.test.ts b/src/platform/remote/comfyui/jobs/fetchJobs.test.ts similarity index 100% rename from tests-ui/tests/platform/remote/comfyui/jobs/fetchJobs.test.ts rename to src/platform/remote/comfyui/jobs/fetchJobs.test.ts diff --git a/tests-ui/tests/platform/settings/components/SettingItem.test.ts b/src/platform/settings/components/SettingItem.test.ts similarity index 100% rename from tests-ui/tests/platform/settings/components/SettingItem.test.ts rename to src/platform/settings/components/SettingItem.test.ts diff --git a/tests-ui/tests/composables/useSettingSearch.test.ts b/src/platform/settings/composables/useSettingSearch.test.ts similarity index 100% rename from tests-ui/tests/composables/useSettingSearch.test.ts rename to src/platform/settings/composables/useSettingSearch.test.ts diff --git a/tests-ui/tests/store/settingStore.test.ts b/src/platform/settings/settingStore.test.ts similarity index 100% rename from tests-ui/tests/store/settingStore.test.ts rename to src/platform/settings/settingStore.test.ts diff --git a/tests-ui/tests/platform/telemetry/topupTracker.test.ts b/src/platform/telemetry/topupTracker.test.ts similarity index 98% rename from tests-ui/tests/platform/telemetry/topupTracker.test.ts rename to src/platform/telemetry/topupTracker.test.ts index 668ed2db7..1ea07ff90 100644 --- a/tests-ui/tests/platform/telemetry/topupTracker.test.ts +++ b/src/platform/telemetry/topupTracker.test.ts @@ -1,5 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' +import type * as TopupTrackerModule from '@/platform/telemetry/topupTracker' import type { AuditLog } from '@/services/customerEventsService' // Mock localStorage @@ -24,7 +25,7 @@ vi.mock('@/platform/telemetry', () => ({ })) describe('topupTracker', () => { - let topupTracker: typeof import('@/platform/telemetry/topupTracker') + let topupTracker: typeof TopupTrackerModule beforeEach(async () => { vi.clearAllMocks() diff --git a/tests-ui/tests/platform/telemetry/useTelemetry.test.ts b/src/platform/telemetry/useTelemetry.test.ts similarity index 100% rename from tests-ui/tests/platform/telemetry/useTelemetry.test.ts rename to src/platform/telemetry/useTelemetry.test.ts diff --git a/tests-ui/tests/services/releaseService.test.ts b/src/platform/updates/common/releaseService.test.ts similarity index 100% rename from tests-ui/tests/services/releaseService.test.ts rename to src/platform/updates/common/releaseService.test.ts diff --git a/tests-ui/tests/store/releaseStore.test.ts b/src/platform/updates/common/releaseStore.test.ts similarity index 100% rename from tests-ui/tests/store/releaseStore.test.ts rename to src/platform/updates/common/releaseStore.test.ts diff --git a/tests-ui/tests/composables/useFrontendVersionMismatchWarning.test.ts b/src/platform/updates/common/useFrontendVersionMismatchWarning.test.ts similarity index 97% rename from tests-ui/tests/composables/useFrontendVersionMismatchWarning.test.ts rename to src/platform/updates/common/useFrontendVersionMismatchWarning.test.ts index 8c175ab05..11a7fcbb0 100644 --- a/tests-ui/tests/composables/useFrontendVersionMismatchWarning.test.ts +++ b/src/platform/updates/common/useFrontendVersionMismatchWarning.test.ts @@ -1,6 +1,5 @@ import { createPinia, setActivePinia } from 'pinia' -import { vi } from 'vitest' -import { afterEach, beforeEach, describe, expect, it } from 'vitest' +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { nextTick } from 'vue' import { useToastStore } from '@/platform/updates/common/toastStore' @@ -66,8 +65,8 @@ vi.mock('vue-i18n', () => ({ // Mock lifecycle hooks to track their calls const mockOnMounted = vi.fn() -vi.mock('vue', async (importOriginal) => { - const actual = await importOriginal() +vi.mock('vue', async () => { + const actual = await vi.importActual('vue') return { ...actual, onMounted: (fn: () => void) => { diff --git a/tests-ui/tests/store/versionCompatibilityStore.test.ts b/src/platform/updates/common/versionCompatibilityStore.test.ts similarity index 100% rename from tests-ui/tests/store/versionCompatibilityStore.test.ts rename to src/platform/updates/common/versionCompatibilityStore.test.ts diff --git a/tests-ui/tests/platform/workflow/cloud/getWorkflowFromHistory.test.ts b/src/platform/workflow/cloud/getWorkflowFromHistory.test.ts similarity index 100% rename from tests-ui/tests/platform/workflow/cloud/getWorkflowFromHistory.test.ts rename to src/platform/workflow/cloud/getWorkflowFromHistory.test.ts diff --git a/tests-ui/tests/store/workflowStore.test.ts b/src/platform/workflow/management/stores/workflowStore.test.ts similarity index 100% rename from tests-ui/tests/store/workflowStore.test.ts rename to src/platform/workflow/management/stores/workflowStore.test.ts diff --git a/tests-ui/tests/composables/useWorkflowAutoSave.test.ts b/src/platform/workflow/persistence/composables/useWorkflowAutoSave.test.ts similarity index 100% rename from tests-ui/tests/composables/useWorkflowAutoSave.test.ts rename to src/platform/workflow/persistence/composables/useWorkflowAutoSave.test.ts diff --git a/tests-ui/tests/platform/workflow/templates/composables/useTemplateUrlLoader.test.ts b/src/platform/workflow/templates/composables/useTemplateUrlLoader.test.ts similarity index 100% rename from tests-ui/tests/platform/workflow/templates/composables/useTemplateUrlLoader.test.ts rename to src/platform/workflow/templates/composables/useTemplateUrlLoader.test.ts diff --git a/tests-ui/tests/composables/useTemplateWorkflows.test.ts b/src/platform/workflow/templates/composables/useTemplateWorkflows.test.ts similarity index 100% rename from tests-ui/tests/composables/useTemplateWorkflows.test.ts rename to src/platform/workflow/templates/composables/useTemplateWorkflows.test.ts diff --git a/tests-ui/workflows/default_workflow.json b/src/platform/workflow/validation/schemas/__fixtures__/default_workflow.json similarity index 100% rename from tests-ui/workflows/default_workflow.json rename to src/platform/workflow/validation/schemas/__fixtures__/default_workflow.json diff --git a/tests-ui/workflows/workflow_disconnected.json b/src/platform/workflow/validation/schemas/__fixtures__/workflow_disconnected.json similarity index 100% rename from tests-ui/workflows/workflow_disconnected.json rename to src/platform/workflow/validation/schemas/__fixtures__/workflow_disconnected.json diff --git a/tests-ui/workflows/workflow_with_group.json b/src/platform/workflow/validation/schemas/__fixtures__/workflow_with_group.json similarity index 100% rename from tests-ui/workflows/workflow_with_group.json rename to src/platform/workflow/validation/schemas/__fixtures__/workflow_with_group.json diff --git a/tests-ui/tests/comfyWorkflow.test.ts b/src/platform/workflow/validation/schemas/workflowSchema.test.ts similarity index 98% rename from tests-ui/tests/comfyWorkflow.test.ts rename to src/platform/workflow/validation/schemas/workflowSchema.test.ts index cc1018696..b075e3ebe 100644 --- a/tests-ui/tests/comfyWorkflow.test.ts +++ b/src/platform/workflow/validation/schemas/workflowSchema.test.ts @@ -4,7 +4,7 @@ import { describe, expect, it } from 'vitest' import { validateComfyWorkflow } from '@/platform/workflow/validation/schemas/workflowSchema' import { defaultGraph } from '@/scripts/defaultGraph' -const WORKFLOW_DIR = 'tests-ui/workflows' +const WORKFLOW_DIR = 'src/platform/workflow/validation/schemas/__fixtures__' describe('parseComfyWorkflow', () => { it('parses valid workflow', async () => { diff --git a/tests-ui/tests/renderer/core/canvas/useCanvasInteractions.test.ts b/src/renderer/core/canvas/useCanvasInteractions.test.ts similarity index 100% rename from tests-ui/tests/renderer/core/canvas/useCanvasInteractions.test.ts rename to src/renderer/core/canvas/useCanvasInteractions.test.ts diff --git a/tests-ui/tests/renderer/core/layout/layoutStore.test.ts b/src/renderer/core/layout/store/layoutStore.test.ts similarity index 100% rename from tests-ui/tests/renderer/core/layout/layoutStore.test.ts rename to src/renderer/core/layout/store/layoutStore.test.ts diff --git a/tests-ui/tests/composables/graph/useTransformSettling.test.ts b/src/renderer/core/layout/transform/useTransformSettling.test.ts similarity index 100% rename from tests-ui/tests/composables/graph/useTransformSettling.test.ts rename to src/renderer/core/layout/transform/useTransformSettling.test.ts diff --git a/tests-ui/tests/composables/element/useTransformState.test.ts b/src/renderer/core/layout/transform/useTransformState.test.ts similarity index 100% rename from tests-ui/tests/composables/element/useTransformState.test.ts rename to src/renderer/core/layout/transform/useTransformState.test.ts diff --git a/tests-ui/tests/renderer/core/layout/utils/layoutMath.test.ts b/src/renderer/core/layout/utils/layoutMath.test.ts similarity index 100% rename from tests-ui/tests/renderer/core/layout/utils/layoutMath.test.ts rename to src/renderer/core/layout/utils/layoutMath.test.ts diff --git a/tests-ui/tests/renderer/core/layout/utils/layoutUtils.test.ts b/src/renderer/core/layout/utils/layoutUtils.test.ts similarity index 100% rename from tests-ui/tests/renderer/core/layout/utils/layoutUtils.test.ts rename to src/renderer/core/layout/utils/layoutUtils.test.ts diff --git a/tests-ui/tests/renderer/core/layout/utils/mappers.test.ts b/src/renderer/core/layout/utils/mappers.test.ts similarity index 95% rename from tests-ui/tests/renderer/core/layout/utils/mappers.test.ts rename to src/renderer/core/layout/utils/mappers.test.ts index a4ab0cd6b..59078bd9c 100644 --- a/tests-ui/tests/renderer/core/layout/utils/mappers.test.ts +++ b/src/renderer/core/layout/utils/mappers.test.ts @@ -3,9 +3,9 @@ import * as Y from 'yjs' import { NODE_LAYOUT_DEFAULTS, - type NodeLayoutMap, yNodeToLayout } from '@/renderer/core/layout/utils/mappers' +import type { NodeLayoutMap } from '@/renderer/core/layout/utils/mappers' describe('mappers', () => { it('yNodeToLayout reads from Yjs-attached map', () => { diff --git a/tests-ui/tests/utils/spatial/QuadTree.test.ts b/src/renderer/core/spatial/QuadTree.test.ts similarity index 98% rename from tests-ui/tests/utils/spatial/QuadTree.test.ts rename to src/renderer/core/spatial/QuadTree.test.ts index 31831159a..daa44bbb7 100644 --- a/tests-ui/tests/utils/spatial/QuadTree.test.ts +++ b/src/renderer/core/spatial/QuadTree.test.ts @@ -1,6 +1,7 @@ import { beforeEach, describe, expect, it } from 'vitest' -import { type Bounds, QuadTree } from '@/renderer/core/spatial/QuadTree' +import { QuadTree } from '@/renderer/core/spatial/QuadTree' +import type { Bounds } from '@/renderer/core/spatial/QuadTree' describe('QuadTree', () => { let quadTree: QuadTree diff --git a/tests-ui/tests/renderer/thumbnail/composables/useWorkflowThumbnail.test.ts b/src/renderer/core/thumbnail/useWorkflowThumbnail.test.ts similarity index 100% rename from tests-ui/tests/renderer/thumbnail/composables/useWorkflowThumbnail.test.ts rename to src/renderer/core/thumbnail/useWorkflowThumbnail.test.ts diff --git a/tests-ui/tests/composables/useMinimap.test.ts b/src/renderer/extensions/minimap/composables/useMinimap.test.ts similarity index 100% rename from tests-ui/tests/composables/useMinimap.test.ts rename to src/renderer/extensions/minimap/composables/useMinimap.test.ts diff --git a/tests-ui/tests/renderer/extensions/minimap/composables/useMinimapGraph.test.ts b/src/renderer/extensions/minimap/composables/useMinimapGraph.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/minimap/composables/useMinimapGraph.test.ts rename to src/renderer/extensions/minimap/composables/useMinimapGraph.test.ts diff --git a/tests-ui/tests/renderer/extensions/minimap/composables/useMinimapInteraction.test.ts b/src/renderer/extensions/minimap/composables/useMinimapInteraction.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/minimap/composables/useMinimapInteraction.test.ts rename to src/renderer/extensions/minimap/composables/useMinimapInteraction.test.ts diff --git a/tests-ui/tests/renderer/extensions/minimap/composables/useMinimapRenderer.test.ts b/src/renderer/extensions/minimap/composables/useMinimapRenderer.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/minimap/composables/useMinimapRenderer.test.ts rename to src/renderer/extensions/minimap/composables/useMinimapRenderer.test.ts diff --git a/tests-ui/tests/renderer/extensions/minimap/composables/useMinimapSettings.test.ts b/src/renderer/extensions/minimap/composables/useMinimapSettings.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/minimap/composables/useMinimapSettings.test.ts rename to src/renderer/extensions/minimap/composables/useMinimapSettings.test.ts diff --git a/tests-ui/tests/renderer/extensions/minimap/composables/useMinimapViewport.test.ts b/src/renderer/extensions/minimap/composables/useMinimapViewport.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/minimap/composables/useMinimapViewport.test.ts rename to src/renderer/extensions/minimap/composables/useMinimapViewport.test.ts diff --git a/tests-ui/tests/minimap/MinimapDataSource.test.ts b/src/renderer/extensions/minimap/data/MinimapDataSource.test.ts similarity index 98% rename from tests-ui/tests/minimap/MinimapDataSource.test.ts rename to src/renderer/extensions/minimap/data/MinimapDataSource.test.ts index eff6ba771..50f9ebba0 100644 --- a/tests-ui/tests/minimap/MinimapDataSource.test.ts +++ b/src/renderer/extensions/minimap/data/MinimapDataSource.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it, vi } from 'vitest' -import { type ComputedRef, computed } from 'vue' +import { computed } from 'vue' +import type { ComputedRef } from 'vue' import type { NodeId } from '@/lib/litegraph/src/LGraphNode' import type { LGraph, LGraphNode, LLink } from '@/lib/litegraph/src/litegraph' diff --git a/tests-ui/tests/renderer/extensions/minimap/minimapCanvasRenderer.test.ts b/src/renderer/extensions/minimap/minimapCanvasRenderer.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/minimap/minimapCanvasRenderer.test.ts rename to src/renderer/extensions/minimap/minimapCanvasRenderer.test.ts diff --git a/tests-ui/tests/renderer/extensions/vueNodes/components/ImagePreview.test.ts b/src/renderer/extensions/vueNodes/components/ImagePreview.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/vueNodes/components/ImagePreview.test.ts rename to src/renderer/extensions/vueNodes/components/ImagePreview.test.ts diff --git a/tests-ui/tests/renderer/extensions/vueNodes/components/LGraphNode.test.ts b/src/renderer/extensions/vueNodes/components/LGraphNode.test.ts similarity index 96% rename from tests-ui/tests/renderer/extensions/vueNodes/components/LGraphNode.test.ts rename to src/renderer/extensions/vueNodes/components/LGraphNode.test.ts index c1ae14094..b93b360fe 100644 --- a/tests-ui/tests/renderer/extensions/vueNodes/components/LGraphNode.test.ts +++ b/src/renderer/extensions/vueNodes/components/LGraphNode.test.ts @@ -89,12 +89,15 @@ vi.mock('@/renderer/extensions/vueNodes/preview/useNodePreviewState', () => ({ })) })) -vi.mock('../interactions/resize/useNodeResize', () => ({ - useNodeResize: vi.fn(() => ({ - startResize: vi.fn(), - isResizing: computed(() => false) - })) -})) +vi.mock( + '@/renderer/extensions/vueNodes/interactions/resize/useNodeResize', + () => ({ + useNodeResize: vi.fn(() => ({ + startResize: vi.fn(), + isResizing: computed(() => false) + })) + }) +) const i18n = createI18n({ legacy: false, diff --git a/tests-ui/tests/renderer/extensions/vueNodes/components/LivePreview.test.ts b/src/renderer/extensions/vueNodes/components/LivePreview.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/vueNodes/components/LivePreview.test.ts rename to src/renderer/extensions/vueNodes/components/LivePreview.test.ts diff --git a/tests-ui/tests/renderer/extensions/vueNodes/components/NodeHeader.subgraph.test.ts b/src/renderer/extensions/vueNodes/components/NodeHeader.subgraph.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/vueNodes/components/NodeHeader.subgraph.test.ts rename to src/renderer/extensions/vueNodes/components/NodeHeader.subgraph.test.ts diff --git a/tests-ui/renderer/extensions/vueNodes/components/NodeWidgets.test.ts b/src/renderer/extensions/vueNodes/components/NodeWidgets.test.ts similarity index 100% rename from tests-ui/renderer/extensions/vueNodes/components/NodeWidgets.test.ts rename to src/renderer/extensions/vueNodes/components/NodeWidgets.test.ts diff --git a/tests-ui/tests/renderer/extensions/vueNodes/composables/useNodeEventHandlers.test.ts b/src/renderer/extensions/vueNodes/composables/useNodeEventHandlers.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/vueNodes/composables/useNodeEventHandlers.test.ts rename to src/renderer/extensions/vueNodes/composables/useNodeEventHandlers.test.ts diff --git a/tests-ui/tests/renderer/extensions/vueNodes/composables/useNodeZIndex.test.ts b/src/renderer/extensions/vueNodes/composables/useNodeZIndex.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/vueNodes/composables/useNodeZIndex.test.ts rename to src/renderer/extensions/vueNodes/composables/useNodeZIndex.test.ts diff --git a/tests-ui/tests/renderer/extensions/vueNodes/widgets/components/WidgetSelect.asset-mode.test.ts b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelect.asset-mode.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/vueNodes/widgets/components/WidgetSelect.asset-mode.test.ts rename to src/renderer/extensions/vueNodes/widgets/components/WidgetSelect.asset-mode.test.ts diff --git a/tests-ui/renderer/extensions/vueNodes/widgets/components/WidgetSelect.test.ts b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelect.test.ts similarity index 100% rename from tests-ui/renderer/extensions/vueNodes/widgets/components/WidgetSelect.test.ts rename to src/renderer/extensions/vueNodes/widgets/components/WidgetSelect.test.ts diff --git a/tests-ui/tests/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.test.ts b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.test.ts rename to src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.test.ts diff --git a/tests-ui/tests/composables/useAssetWidgetData.desktop.test.ts b/src/renderer/extensions/vueNodes/widgets/composables/useAssetWidgetData.desktop.test.ts similarity index 100% rename from tests-ui/tests/composables/useAssetWidgetData.desktop.test.ts rename to src/renderer/extensions/vueNodes/widgets/composables/useAssetWidgetData.desktop.test.ts diff --git a/tests-ui/tests/composables/useAssetWidgetData.test.ts b/src/renderer/extensions/vueNodes/widgets/composables/useAssetWidgetData.test.ts similarity index 100% rename from tests-ui/tests/composables/useAssetWidgetData.test.ts rename to src/renderer/extensions/vueNodes/widgets/composables/useAssetWidgetData.test.ts diff --git a/tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useComboWidget.test.ts b/src/renderer/extensions/vueNodes/widgets/composables/useComboWidget.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useComboWidget.test.ts rename to src/renderer/extensions/vueNodes/widgets/composables/useComboWidget.test.ts diff --git a/tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useFloatWidget.test.ts b/src/renderer/extensions/vueNodes/widgets/composables/useFloatWidget.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useFloatWidget.test.ts rename to src/renderer/extensions/vueNodes/widgets/composables/useFloatWidget.test.ts diff --git a/tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useIntWidget.test.ts b/src/renderer/extensions/vueNodes/widgets/composables/useIntWidget.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useIntWidget.test.ts rename to src/renderer/extensions/vueNodes/widgets/composables/useIntWidget.test.ts diff --git a/tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useRemoteWidget.test.ts b/src/renderer/extensions/vueNodes/widgets/composables/useRemoteWidget.test.ts similarity index 98% rename from tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useRemoteWidget.test.ts rename to src/renderer/extensions/vueNodes/widgets/composables/useRemoteWidget.test.ts index 9a45d83ad..ef6d15359 100644 --- a/tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useRemoteWidget.test.ts +++ b/src/renderer/extensions/vueNodes/widgets/composables/useRemoteWidget.test.ts @@ -21,10 +21,10 @@ const mockCloudAuth = vi.hoisted(() => ({ })) vi.mock('axios', async (importOriginal) => { - const actual = await importOriginal() + const actual = await importOriginal() return { default: { - ...actual.default, + ...actual, get: vi.fn() } } @@ -36,22 +36,16 @@ vi.mock('@/platform/distribution/types', () => ({ } })) -vi.mock('@/stores/firebaseAuthStore', async (importOriginal) => { - const actual = - await importOriginal() +vi.mock('@/stores/firebaseAuthStore', async () => { return { - ...actual, useFirebaseAuthStore: vi.fn(() => ({ getAuthHeader: vi.fn(() => Promise.resolve(mockCloudAuth.authHeader)) })) } }) -vi.mock('@/platform/settings/settingStore', async (importOriginal) => { - const actual = - await importOriginal() +vi.mock('@/platform/settings/settingStore', async () => { return { - ...actual, useSettingStore: () => ({ settings: {} }) diff --git a/tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useWidgetRenderer.test.ts b/src/renderer/extensions/vueNodes/widgets/composables/useWidgetRenderer.test.ts similarity index 100% rename from tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useWidgetRenderer.test.ts rename to src/renderer/extensions/vueNodes/widgets/composables/useWidgetRenderer.test.ts diff --git a/tests-ui/tests/nodeDef.test.ts b/src/schemas/nodeDef/migration.test.ts similarity index 100% rename from tests-ui/tests/nodeDef.test.ts rename to src/schemas/nodeDef/migration.test.ts diff --git a/tests-ui/tests/apiTypes.test.ts b/src/schemas/nodeDefSchema.validation.test.ts similarity index 94% rename from tests-ui/tests/apiTypes.test.ts rename to src/schemas/nodeDefSchema.validation.test.ts index 1b6d4ee6f..707eabd3e 100644 --- a/tests-ui/tests/apiTypes.test.ts +++ b/src/schemas/nodeDefSchema.validation.test.ts @@ -1,9 +1,7 @@ import { describe, expect, it } from 'vitest' -import { - type ComfyNodeDef, - validateComfyNodeDef -} from '@/schemas/nodeDefSchema' +import { validateComfyNodeDef } from '@/schemas/nodeDefSchema' +import type { ComfyNodeDef } from '@/schemas/nodeDefSchema' const EXAMPLE_NODE_DEF: ComfyNodeDef = { input: { diff --git a/tests-ui/tests/api.featureFlags.test.ts b/src/scripts/api.featureFlags.test.ts similarity index 100% rename from tests-ui/tests/api.featureFlags.test.ts rename to src/scripts/api.featureFlags.test.ts diff --git a/tests-ui/tests/api.fetchApi.test.ts b/src/scripts/api.fetchApi.test.ts similarity index 100% rename from tests-ui/tests/api.fetchApi.test.ts rename to src/scripts/api.fetchApi.test.ts diff --git a/tests-ui/tests/api.folderPaths.test.ts b/src/scripts/api.folderPaths.test.ts similarity index 100% rename from tests-ui/tests/api.folderPaths.test.ts rename to src/scripts/api.folderPaths.test.ts diff --git a/tests-ui/tests/widgets/domWidget.test.ts b/src/scripts/domWidget.test.ts similarity index 100% rename from tests-ui/tests/widgets/domWidget.test.ts rename to src/scripts/domWidget.test.ts diff --git a/tests-ui/tests/scripts/metadata/gltf.test.ts b/src/scripts/metadata/gltf.test.ts similarity index 98% rename from tests-ui/tests/scripts/metadata/gltf.test.ts rename to src/scripts/metadata/gltf.test.ts index d5cdef413..cead27180 100644 --- a/tests-ui/tests/scripts/metadata/gltf.test.ts +++ b/src/scripts/metadata/gltf.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from 'vitest' import { ASCII, GltfSizeBytes } from '@/types/metadataTypes' -import { getGltfBinaryMetadata } from '../../../../src/scripts/metadata/gltf' +import { getGltfBinaryMetadata } from './gltf' describe('GLTF binary metadata parser', () => { const createGLTFFileStructure = () => { diff --git a/tests-ui/tests/scripts/metadata/ply.test.ts b/src/scripts/metadata/ply.test.ts similarity index 100% rename from tests-ui/tests/scripts/metadata/ply.test.ts rename to src/scripts/metadata/ply.test.ts diff --git a/tests-ui/tests/audioService.test.ts b/src/services/audioService.test.ts similarity index 98% rename from tests-ui/tests/audioService.test.ts rename to src/services/audioService.test.ts index 81fc46d9b..f26b60244 100644 --- a/tests-ui/tests/audioService.test.ts +++ b/src/services/audioService.test.ts @@ -1,9 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' -import { - type AudioRecordingError, - useAudioService -} from '@/services/audioService' +import { useAudioService } from '@/services/audioService' +import type { AudioRecordingError } from '@/services/audioService' const mockRegister = vi.hoisted(() => vi.fn()) const mockConnect = vi.hoisted(() => vi.fn()) diff --git a/tests-ui/tests/services/customerEventsService.test.ts b/src/services/customerEventsService.test.ts similarity index 100% rename from tests-ui/tests/services/customerEventsService.test.ts rename to src/services/customerEventsService.test.ts diff --git a/tests-ui/tests/services/registrySearchGateway.test.ts b/src/services/gateway/registrySearchGateway.test.ts similarity index 100% rename from tests-ui/tests/services/registrySearchGateway.test.ts rename to src/services/gateway/registrySearchGateway.test.ts diff --git a/tests-ui/tests/services/keybindingService.escape.test.ts b/src/services/keybindingService.escape.test.ts similarity index 100% rename from tests-ui/tests/services/keybindingService.escape.test.ts rename to src/services/keybindingService.escape.test.ts diff --git a/tests-ui/tests/services/keybindingService.forwarding.test.ts b/src/services/keybindingService.forwarding.test.ts similarity index 100% rename from tests-ui/tests/services/keybindingService.forwarding.test.ts rename to src/services/keybindingService.forwarding.test.ts diff --git a/tests-ui/tests/services/mediaCacheService.test.ts b/src/services/mediaCacheService.test.ts similarity index 92% rename from tests-ui/tests/services/mediaCacheService.test.ts rename to src/services/mediaCacheService.test.ts index 8f58559ca..1860344cc 100644 --- a/tests-ui/tests/services/mediaCacheService.test.ts +++ b/src/services/mediaCacheService.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' -import { useMediaCache } from '../../../src/services/mediaCacheService' +import { useMediaCache } from './mediaCacheService' // Mock fetch global.fetch = vi.fn() diff --git a/tests-ui/tests/services/newUserService.test.ts b/src/services/newUserService.test.ts similarity index 98% rename from tests-ui/tests/services/newUserService.test.ts rename to src/services/newUserService.test.ts index e940a785b..43fcc92cd 100644 --- a/tests-ui/tests/services/newUserService.test.ts +++ b/src/services/newUserService.test.ts @@ -19,12 +19,12 @@ vi.mock('@/config/version', () => ({ //@ts-expect-error Define global for the test global.__COMFYUI_FRONTEND_VERSION__ = '1.24.0' +import type { newUserService as NewUserServiceType } from '@/services/newUserService' + describe('newUserService', () => { - let service: ReturnType< - typeof import('@/services/newUserService').newUserService - > + let service: ReturnType let mockSettingStore: any - let newUserService: typeof import('@/services/newUserService').newUserService + let newUserService: typeof NewUserServiceType beforeEach(async () => { vi.clearAllMocks() diff --git a/tests-ui/tests/services/nodeOrganizationService.test.ts b/src/services/nodeOrganizationService.test.ts similarity index 100% rename from tests-ui/tests/services/nodeOrganizationService.test.ts rename to src/services/nodeOrganizationService.test.ts diff --git a/tests-ui/tests/nodeSearchService.test.ts b/src/services/nodeSearchService.test.ts similarity index 100% rename from tests-ui/tests/nodeSearchService.test.ts rename to src/services/nodeSearchService.test.ts diff --git a/tests-ui/tests/services/algoliaSearchProvider.test.ts b/src/services/providers/algoliaSearchProvider.test.ts similarity index 100% rename from tests-ui/tests/services/algoliaSearchProvider.test.ts rename to src/services/providers/algoliaSearchProvider.test.ts diff --git a/tests-ui/tests/services/registrySearchProvider.test.ts b/src/services/providers/registrySearchProvider.test.ts similarity index 100% rename from tests-ui/tests/services/registrySearchProvider.test.ts rename to src/services/providers/registrySearchProvider.test.ts diff --git a/tests-ui/tests/store/assetsStore.test.ts b/src/stores/assetsStore.test.ts similarity index 100% rename from tests-ui/tests/store/assetsStore.test.ts rename to src/stores/assetsStore.test.ts diff --git a/tests-ui/tests/store/comfyRegistryStore.test.ts b/src/stores/comfyRegistryStore.test.ts similarity index 100% rename from tests-ui/tests/store/comfyRegistryStore.test.ts rename to src/stores/comfyRegistryStore.test.ts diff --git a/tests-ui/tests/store/dialogStore.test.ts b/src/stores/dialogStore.test.ts similarity index 100% rename from tests-ui/tests/store/dialogStore.test.ts rename to src/stores/dialogStore.test.ts diff --git a/tests-ui/tests/domWidgetStore.test.ts b/src/stores/domWidgetStore.test.ts similarity index 100% rename from tests-ui/tests/domWidgetStore.test.ts rename to src/stores/domWidgetStore.test.ts diff --git a/tests-ui/tests/store/executionStore.test.ts b/src/stores/executionStore.test.ts similarity index 97% rename from tests-ui/tests/store/executionStore.test.ts rename to src/stores/executionStore.test.ts index 7c893bd60..75b6f4a43 100644 --- a/tests-ui/tests/store/executionStore.test.ts +++ b/src/stores/executionStore.test.ts @@ -9,11 +9,13 @@ const mockNodeExecutionIdToNodeLocatorId = vi.fn() const mockNodeIdToNodeLocatorId = vi.fn() const mockNodeLocatorIdToNodeExecutionId = vi.fn() +import type * as WorkflowStoreModule from '@/platform/workflow/management/stores/workflowStore' + // Mock the workflowStore vi.mock('@/platform/workflow/management/stores/workflowStore', async () => { - const { ComfyWorkflow } = await vi.importActual< - typeof import('@/platform/workflow/management/stores/workflowStore') - >('@/platform/workflow/management/stores/workflowStore') + const { ComfyWorkflow } = await vi.importActual( + '@/platform/workflow/management/stores/workflowStore' + ) return { ComfyWorkflow, useWorkflowStore: vi.fn(() => ({ diff --git a/tests-ui/tests/store/firebaseAuthStore.test.ts b/src/stores/firebaseAuthStore.test.ts similarity index 99% rename from tests-ui/tests/store/firebaseAuthStore.test.ts rename to src/stores/firebaseAuthStore.test.ts index 4e29fdaea..bbad43264 100644 --- a/tests-ui/tests/store/firebaseAuthStore.test.ts +++ b/src/stores/firebaseAuthStore.test.ts @@ -51,7 +51,7 @@ vi.mock('vue-i18n', () => ({ })) vi.mock('firebase/auth', async (importOriginal) => { - const actual = await importOriginal() + const actual = await importOriginal() return { ...actual, signInWithEmailAndPassword: vi.fn(), diff --git a/tests-ui/tests/store/imagePreviewStore.test.ts b/src/stores/imagePreviewStore.test.ts similarity index 100% rename from tests-ui/tests/store/imagePreviewStore.test.ts rename to src/stores/imagePreviewStore.test.ts diff --git a/tests-ui/tests/store/keybindingStore.test.ts b/src/stores/keybindingStore.test.ts similarity index 100% rename from tests-ui/tests/store/keybindingStore.test.ts rename to src/stores/keybindingStore.test.ts diff --git a/tests-ui/tests/store/modelStore.test.ts b/src/stores/modelStore.test.ts similarity index 100% rename from tests-ui/tests/store/modelStore.test.ts rename to src/stores/modelStore.test.ts diff --git a/tests-ui/tests/store/modelToNodeStore.test.ts b/src/stores/modelToNodeStore.test.ts similarity index 100% rename from tests-ui/tests/store/modelToNodeStore.test.ts rename to src/stores/modelToNodeStore.test.ts diff --git a/tests-ui/tests/store/nodeDefStore.test.ts b/src/stores/nodeDefStore.test.ts similarity index 98% rename from tests-ui/tests/store/nodeDefStore.test.ts rename to src/stores/nodeDefStore.test.ts index 071565a6c..d4d9828d4 100644 --- a/tests-ui/tests/store/nodeDefStore.test.ts +++ b/src/stores/nodeDefStore.test.ts @@ -2,7 +2,8 @@ import { createPinia, setActivePinia } from 'pinia' import { beforeEach, describe, expect, it } from 'vitest' import type { ComfyNodeDef } from '@/schemas/nodeDefSchema' -import { type NodeDefFilter, useNodeDefStore } from '@/stores/nodeDefStore' +import { useNodeDefStore } from '@/stores/nodeDefStore' +import type { NodeDefFilter } from '@/stores/nodeDefStore' describe('useNodeDefStore', () => { let store: ReturnType diff --git a/tests-ui/tests/stores/queueStore.loadWorkflow.test.ts b/src/stores/queueStore.loadWorkflow.test.ts similarity index 100% rename from tests-ui/tests/stores/queueStore.loadWorkflow.test.ts rename to src/stores/queueStore.loadWorkflow.test.ts diff --git a/tests-ui/tests/store/queueStore.test.ts b/src/stores/queueStore.test.ts similarity index 100% rename from tests-ui/tests/store/queueStore.test.ts rename to src/stores/queueStore.test.ts diff --git a/tests-ui/tests/store/serverConfigStore.test.ts b/src/stores/serverConfigStore.test.ts similarity index 100% rename from tests-ui/tests/store/serverConfigStore.test.ts rename to src/stores/serverConfigStore.test.ts diff --git a/tests-ui/tests/store/subgraphNavigationStore.test.ts b/src/stores/subgraphNavigationStore.test.ts similarity index 100% rename from tests-ui/tests/store/subgraphNavigationStore.test.ts rename to src/stores/subgraphNavigationStore.test.ts diff --git a/tests-ui/tests/store/subgraphNavigationStore.viewport.test.ts b/src/stores/subgraphNavigationStore.viewport.test.ts similarity index 100% rename from tests-ui/tests/store/subgraphNavigationStore.viewport.test.ts rename to src/stores/subgraphNavigationStore.viewport.test.ts diff --git a/tests-ui/tests/store/subgraphStore.test.ts b/src/stores/subgraphStore.test.ts similarity index 98% rename from tests-ui/tests/store/subgraphStore.test.ts rename to src/stores/subgraphStore.test.ts index d41c3e817..68f528ae4 100644 --- a/tests-ui/tests/store/subgraphStore.test.ts +++ b/src/stores/subgraphStore.test.ts @@ -11,7 +11,7 @@ import { useSubgraphStore } from '@/stores/subgraphStore' import { createTestSubgraph, createTestSubgraphNode -} from '../litegraph/subgraph/fixtures/subgraphHelpers' +} from '@/lib/litegraph/src/subgraph/__fixtures__/subgraphHelpers' // Mock telemetry to break circular dependency (telemetry → workflowStore → app → telemetry) vi.mock('@/platform/telemetry', () => ({ diff --git a/tests-ui/tests/store/systemStatsStore.test.ts b/src/stores/systemStatsStore.test.ts similarity index 100% rename from tests-ui/tests/store/systemStatsStore.test.ts rename to src/stores/systemStatsStore.test.ts diff --git a/tests-ui/tests/store/userFileStore.test.ts b/src/stores/userFileStore.test.ts similarity index 100% rename from tests-ui/tests/store/userFileStore.test.ts rename to src/stores/userFileStore.test.ts diff --git a/tests-ui/tests/store/bottomPanelStore.test.ts b/src/stores/workspace/bottomPanelStore.test.ts similarity index 100% rename from tests-ui/tests/store/bottomPanelStore.test.ts rename to src/stores/workspace/bottomPanelStore.test.ts diff --git a/tests-ui/tests/store/nodeHelpStore.test.ts b/src/stores/workspace/nodeHelpStore.test.ts similarity index 100% rename from tests-ui/tests/store/nodeHelpStore.test.ts rename to src/stores/workspace/nodeHelpStore.test.ts diff --git a/tests-ui/tests/store/searchBoxStore.test.ts b/src/stores/workspace/searchBoxStore.test.ts similarity index 100% rename from tests-ui/tests/store/searchBoxStore.test.ts rename to src/stores/workspace/searchBoxStore.test.ts diff --git a/tests-ui/tests/types/nodeIdentification.test.ts b/src/types/nodeIdentification.test.ts similarity index 99% rename from tests-ui/tests/types/nodeIdentification.test.ts rename to src/types/nodeIdentification.test.ts index 5b2a94325..39288a9c0 100644 --- a/tests-ui/tests/types/nodeIdentification.test.ts +++ b/src/types/nodeIdentification.test.ts @@ -2,7 +2,6 @@ import { describe, expect, it } from 'vitest' import type { NodeId } from '@/platform/workflow/validation/schemas/workflowSchema' import { - type NodeLocatorId, createNodeExecutionId, createNodeLocatorId, isNodeExecutionId, @@ -10,6 +9,7 @@ import { parseNodeExecutionId, parseNodeLocatorId } from '@/types/nodeIdentification' +import type { NodeLocatorId } from '@/types/nodeIdentification' describe('nodeIdentification', () => { describe('NodeLocatorId', () => { diff --git a/tests-ui/tests/nodeSource.test.ts b/src/types/nodeSource.test.ts similarity index 100% rename from tests-ui/tests/nodeSource.test.ts rename to src/types/nodeSource.test.ts diff --git a/tests-ui/tests/colorUtil.test.ts b/src/utils/colorUtil.test.ts similarity index 100% rename from tests-ui/tests/colorUtil.test.ts rename to src/utils/colorUtil.test.ts diff --git a/tests-ui/tests/utils/executableGroupNodeChildDTO.test.ts b/src/utils/executableGroupNodeChildDTO.test.ts similarity index 100% rename from tests-ui/tests/utils/executableGroupNodeChildDTO.test.ts rename to src/utils/executableGroupNodeChildDTO.test.ts diff --git a/tests-ui/tests/utils/graphTraversalUtil.test.ts b/src/utils/graphTraversalUtil.test.ts similarity index 99% rename from tests-ui/tests/utils/graphTraversalUtil.test.ts rename to src/utils/graphTraversalUtil.test.ts index 2af5a6ee9..2b3f1bfbc 100644 --- a/tests-ui/tests/utils/graphTraversalUtil.test.ts +++ b/src/utils/graphTraversalUtil.test.ts @@ -1,3 +1,4 @@ +// oxlint-disable no-misused-spread import { describe, expect, it, vi } from 'vitest' import type { diff --git a/tests-ui/tests/utils/hostWhitelist.test.ts b/src/utils/hostWhitelist.test.ts similarity index 100% rename from tests-ui/tests/utils/hostWhitelist.test.ts rename to src/utils/hostWhitelist.test.ts diff --git a/tests-ui/tests/utils/litegraphUtil.test.ts b/src/utils/litegraphUtil.test.ts similarity index 100% rename from tests-ui/tests/utils/litegraphUtil.test.ts rename to src/utils/litegraphUtil.test.ts diff --git a/tests-ui/tests/utils/markdownRendererUtil.test.ts b/src/utils/markdownRendererUtil.test.ts similarity index 100% rename from tests-ui/tests/utils/markdownRendererUtil.test.ts rename to src/utils/markdownRendererUtil.test.ts diff --git a/tests-ui/tests/utils/mathUtil.test.ts b/src/utils/mathUtil.test.ts similarity index 100% rename from tests-ui/tests/utils/mathUtil.test.ts rename to src/utils/mathUtil.test.ts diff --git a/tests-ui/tests/utils/migration/workflows/reroute/legacy/branching.json b/src/utils/migration/__fixtures__/reroute/legacy/branching.json similarity index 100% rename from tests-ui/tests/utils/migration/workflows/reroute/legacy/branching.json rename to src/utils/migration/__fixtures__/reroute/legacy/branching.json diff --git a/tests-ui/tests/utils/migration/workflows/reroute/legacy/floating.json b/src/utils/migration/__fixtures__/reroute/legacy/floating.json similarity index 100% rename from tests-ui/tests/utils/migration/workflows/reroute/legacy/floating.json rename to src/utils/migration/__fixtures__/reroute/legacy/floating.json diff --git a/tests-ui/tests/utils/migration/workflows/reroute/legacy/floating_branch.json b/src/utils/migration/__fixtures__/reroute/legacy/floating_branch.json similarity index 100% rename from tests-ui/tests/utils/migration/workflows/reroute/legacy/floating_branch.json rename to src/utils/migration/__fixtures__/reroute/legacy/floating_branch.json diff --git a/tests-ui/tests/utils/migration/workflows/reroute/legacy/single_connected.json b/src/utils/migration/__fixtures__/reroute/legacy/single_connected.json similarity index 100% rename from tests-ui/tests/utils/migration/workflows/reroute/legacy/single_connected.json rename to src/utils/migration/__fixtures__/reroute/legacy/single_connected.json diff --git a/tests-ui/tests/utils/migration/workflows/reroute/native/branching.json b/src/utils/migration/__fixtures__/reroute/native/branching.json similarity index 100% rename from tests-ui/tests/utils/migration/workflows/reroute/native/branching.json rename to src/utils/migration/__fixtures__/reroute/native/branching.json diff --git a/tests-ui/tests/utils/migration/workflows/reroute/native/floating.json b/src/utils/migration/__fixtures__/reroute/native/floating.json similarity index 100% rename from tests-ui/tests/utils/migration/workflows/reroute/native/floating.json rename to src/utils/migration/__fixtures__/reroute/native/floating.json diff --git a/tests-ui/tests/utils/migration/workflows/reroute/native/floating_branch.json b/src/utils/migration/__fixtures__/reroute/native/floating_branch.json similarity index 100% rename from tests-ui/tests/utils/migration/workflows/reroute/native/floating_branch.json rename to src/utils/migration/__fixtures__/reroute/native/floating_branch.json diff --git a/tests-ui/tests/utils/migration/workflows/reroute/native/single_connected.json b/src/utils/migration/__fixtures__/reroute/native/single_connected.json similarity index 100% rename from tests-ui/tests/utils/migration/workflows/reroute/native/single_connected.json rename to src/utils/migration/__fixtures__/reroute/native/single_connected.json diff --git a/tests-ui/tests/utils/migration/migrateReroute.test.ts b/src/utils/migration/migrateReroute.test.ts similarity index 90% rename from tests-ui/tests/utils/migration/migrateReroute.test.ts rename to src/utils/migration/migrateReroute.test.ts index ce7b62a2e..a6fa00bf6 100644 --- a/tests-ui/tests/utils/migration/migrateReroute.test.ts +++ b/src/utils/migration/migrateReroute.test.ts @@ -22,7 +22,7 @@ describe('migrateReroute', () => { ])('should correctly migrate %s', async (fileName) => { // Load the legacy workflow const legacyWorkflow = loadWorkflow( - `workflows/reroute/legacy/${fileName}` + `__fixtures__/reroute/legacy/${fileName}` ) // Migrate the workflow @@ -31,7 +31,7 @@ describe('migrateReroute', () => { // Compare with snapshot await expect( JSON.stringify(migratedWorkflow, null, 2) - ).toMatchFileSnapshot(`workflows/reroute/native/${fileName}`) + ).toMatchFileSnapshot(`__fixtures__/reroute/native/${fileName}`) }) }) }) diff --git a/tests-ui/tests/utils/nodeDefUtil.test.ts b/src/utils/nodeDefUtil.test.ts similarity index 100% rename from tests-ui/tests/utils/nodeDefUtil.test.ts rename to src/utils/nodeDefUtil.test.ts diff --git a/tests-ui/tests/utils/nodeFilterUtil.test.ts b/src/utils/nodeFilterUtil.test.ts similarity index 100% rename from tests-ui/tests/utils/nodeFilterUtil.test.ts rename to src/utils/nodeFilterUtil.test.ts diff --git a/tests-ui/tests/utils/packUtils.test.ts b/src/utils/packUtils.test.ts similarity index 100% rename from tests-ui/tests/utils/packUtils.test.ts rename to src/utils/packUtils.test.ts diff --git a/tests-ui/tests/utils/serachAndReplace.test.ts b/src/utils/searchAndReplace.test.ts similarity index 100% rename from tests-ui/tests/utils/serachAndReplace.test.ts rename to src/utils/searchAndReplace.test.ts diff --git a/tests-ui/tests/utils/treeUtilTest.test.ts b/src/utils/treeUtil.test.ts similarity index 100% rename from tests-ui/tests/utils/treeUtilTest.test.ts rename to src/utils/treeUtil.test.ts diff --git a/tests-ui/tests/utils/typeGuardUtil.test.ts b/src/utils/typeGuardUtil.test.ts similarity index 100% rename from tests-ui/tests/utils/typeGuardUtil.test.ts rename to src/utils/typeGuardUtil.test.ts diff --git a/tests-ui/tests/components/dialog/footer/ManagerProgressFooter.test.ts b/src/workbench/extensions/manager/components/ManagerProgressFooter.test.ts similarity index 100% rename from tests-ui/tests/components/dialog/footer/ManagerProgressFooter.test.ts rename to src/workbench/extensions/manager/components/ManagerProgressFooter.test.ts diff --git a/tests-ui/tests/components/dialog/content/manager/NodeConflictDialogContent.test.ts b/src/workbench/extensions/manager/components/manager/NodeConflictDialogContent.test.ts similarity index 100% rename from tests-ui/tests/components/dialog/content/manager/NodeConflictDialogContent.test.ts rename to src/workbench/extensions/manager/components/manager/NodeConflictDialogContent.test.ts diff --git a/tests-ui/tests/components/dialog/content/manager/packCard/PackCard.test.ts b/src/workbench/extensions/manager/components/manager/packCard/PackCard.test.ts similarity index 100% rename from tests-ui/tests/components/dialog/content/manager/packCard/PackCard.test.ts rename to src/workbench/extensions/manager/components/manager/packCard/PackCard.test.ts diff --git a/tests-ui/tests/composables/useMissingNodes.test.ts b/src/workbench/extensions/manager/composables/nodePack/useMissingNodes.test.ts similarity index 99% rename from tests-ui/tests/composables/useMissingNodes.test.ts rename to src/workbench/extensions/manager/composables/nodePack/useMissingNodes.test.ts index 04a4e5ffd..a467bf098 100644 --- a/tests-ui/tests/composables/useMissingNodes.test.ts +++ b/src/workbench/extensions/manager/composables/nodePack/useMissingNodes.test.ts @@ -9,8 +9,7 @@ import { useWorkflowPacks } from '@/workbench/extensions/manager/composables/nod import { useComfyManagerStore } from '@/workbench/extensions/manager/stores/comfyManagerStore' vi.mock('@vueuse/core', async () => { - const actual = - await vi.importActual('@vueuse/core') + const actual = await vi.importActual('@vueuse/core') return { ...actual, createSharedComposable: any>(fn: Fn) => fn diff --git a/tests-ui/tests/composables/nodePack/usePacksSelection.test.ts b/src/workbench/extensions/manager/composables/nodePack/usePacksSelection.test.ts similarity index 100% rename from tests-ui/tests/composables/nodePack/usePacksSelection.test.ts rename to src/workbench/extensions/manager/composables/nodePack/usePacksSelection.test.ts diff --git a/tests-ui/tests/composables/nodePack/usePacksStatus.test.ts b/src/workbench/extensions/manager/composables/nodePack/usePacksStatus.test.ts similarity index 100% rename from tests-ui/tests/composables/nodePack/usePacksStatus.test.ts rename to src/workbench/extensions/manager/composables/nodePack/usePacksStatus.test.ts diff --git a/tests-ui/tests/composables/useUpdateAvailableNodes.test.ts b/src/workbench/extensions/manager/composables/nodePack/useUpdateAvailableNodes.test.ts similarity index 100% rename from tests-ui/tests/composables/useUpdateAvailableNodes.test.ts rename to src/workbench/extensions/manager/composables/nodePack/useUpdateAvailableNodes.test.ts diff --git a/tests-ui/tests/composables/useConflictAcknowledgment.test.ts b/src/workbench/extensions/manager/composables/useConflictAcknowledgment.test.ts similarity index 100% rename from tests-ui/tests/composables/useConflictAcknowledgment.test.ts rename to src/workbench/extensions/manager/composables/useConflictAcknowledgment.test.ts diff --git a/tests-ui/tests/composables/useConflictDetection.test.ts b/src/workbench/extensions/manager/composables/useConflictDetection.test.ts similarity index 100% rename from tests-ui/tests/composables/useConflictDetection.test.ts rename to src/workbench/extensions/manager/composables/useConflictDetection.test.ts diff --git a/tests-ui/tests/composables/useImportFailedDetection.test.ts b/src/workbench/extensions/manager/composables/useImportFailedDetection.test.ts similarity index 98% rename from tests-ui/tests/composables/useImportFailedDetection.test.ts rename to src/workbench/extensions/manager/composables/useImportFailedDetection.test.ts index 5a6614ca0..39619d5ed 100644 --- a/tests-ui/tests/composables/useImportFailedDetection.test.ts +++ b/src/workbench/extensions/manager/composables/useImportFailedDetection.test.ts @@ -11,8 +11,8 @@ import * as conflictDetectionStore from '@/workbench/extensions/manager/stores/c vi.mock('@/workbench/extensions/manager/stores/comfyManagerStore') vi.mock('@/workbench/extensions/manager/stores/conflictDetectionStore') vi.mock('@/services/dialogService') -vi.mock('vue-i18n', async (importOriginal) => { - const actual = await importOriginal() +vi.mock('vue-i18n', async () => { + const actual = await vi.importActual('vue-i18n') return { ...actual, useI18n: () => ({ diff --git a/tests-ui/tests/composables/useManagerQueue.test.ts b/src/workbench/extensions/manager/composables/useManagerQueue.test.ts similarity index 100% rename from tests-ui/tests/composables/useManagerQueue.test.ts rename to src/workbench/extensions/manager/composables/useManagerQueue.test.ts diff --git a/tests-ui/tests/composables/useManagerState.test.ts b/src/workbench/extensions/manager/composables/useManagerState.test.ts similarity index 100% rename from tests-ui/tests/composables/useManagerState.test.ts rename to src/workbench/extensions/manager/composables/useManagerState.test.ts diff --git a/tests-ui/tests/store/comfyManagerStore.test.ts b/src/workbench/extensions/manager/stores/comfyManagerStore.test.ts similarity index 100% rename from tests-ui/tests/store/comfyManagerStore.test.ts rename to src/workbench/extensions/manager/stores/comfyManagerStore.test.ts diff --git a/tests-ui/tests/stores/conflictDetectionStore.test.ts b/src/workbench/extensions/manager/stores/conflictDetectionStore.test.ts similarity index 100% rename from tests-ui/tests/stores/conflictDetectionStore.test.ts rename to src/workbench/extensions/manager/stores/conflictDetectionStore.test.ts diff --git a/tests-ui/tests/utils/conflictUtils.test.ts b/src/workbench/extensions/manager/utils/conflictUtils.test.ts similarity index 100% rename from tests-ui/tests/utils/conflictUtils.test.ts rename to src/workbench/extensions/manager/utils/conflictUtils.test.ts diff --git a/tests-ui/tests/workbench/extensions/manager/utils/graphHasMissingNodes.test.ts b/src/workbench/extensions/manager/utils/graphHasMissingNodes.test.ts similarity index 100% rename from tests-ui/tests/workbench/extensions/manager/utils/graphHasMissingNodes.test.ts rename to src/workbench/extensions/manager/utils/graphHasMissingNodes.test.ts diff --git a/tests-ui/tests/utils/systemCompatibility.test.ts b/src/workbench/extensions/manager/utils/systemCompatibility.test.ts similarity index 100% rename from tests-ui/tests/utils/systemCompatibility.test.ts rename to src/workbench/extensions/manager/utils/systemCompatibility.test.ts diff --git a/tests-ui/tests/utils/versionUtil.test.ts b/src/workbench/extensions/manager/utils/versionUtil.test.ts similarity index 100% rename from tests-ui/tests/utils/versionUtil.test.ts rename to src/workbench/extensions/manager/utils/versionUtil.test.ts diff --git a/tests-ui/utils/modelMetadataUtil.test.ts b/src/workbench/utils/modelMetadataUtil.test.ts similarity index 100% rename from tests-ui/utils/modelMetadataUtil.test.ts rename to src/workbench/utils/modelMetadataUtil.test.ts diff --git a/tests-ui/tests/utils/nodeDefOrderingUtil.test.ts b/src/workbench/utils/nodeDefOrderingUtil.test.ts similarity index 100% rename from tests-ui/tests/utils/nodeDefOrderingUtil.test.ts rename to src/workbench/utils/nodeDefOrderingUtil.test.ts diff --git a/tests-ui/CLAUDE.md b/tests-ui/CLAUDE.md deleted file mode 100644 index 10e5d660b..000000000 --- a/tests-ui/CLAUDE.md +++ /dev/null @@ -1,23 +0,0 @@ -# Unit Testing Guidelines - -## Running Tests -- Single file: `pnpm test:unit -- ` -- All tests: `pnpm test:unit` -- Wrong Examples: - - Still runs all tests: `pnpm test:unit ` - -## Testing Approach - -- Write tests for new features -- Run single tests for performance -- Follow existing test patterns - -## Test Structure - -- Check @tests-ui/README.md for guidelines -- Use existing test utilities -- Mock external dependencies - -## Mocking -- Read: https://vitest.dev/api/mock.html -- Critical: Always prefer vitest mock functions over writing verbose manual mocks diff --git a/tests-ui/fixtures/historySortingFixtures.ts b/tests-ui/fixtures/historySortingFixtures.ts deleted file mode 100644 index a7b630667..000000000 --- a/tests-ui/fixtures/historySortingFixtures.ts +++ /dev/null @@ -1,258 +0,0 @@ -/** - * @fileoverview Test fixtures for history V2 timestamp-based sorting - */ -import type { HistoryResponseV2 } from '@/platform/remote/comfyui/history/types/historyV2Types' - -export const historyV2WithMissingTimestamp: HistoryResponseV2 = { - history: [ - { - prompt_id: 'item-timestamp-1000', - prompt: { - priority: 0, - prompt_id: 'item-timestamp-1000', - extra_data: { - client_id: 'test-client' - } - }, - outputs: { - '1': { - images: [{ filename: 'test1.png', type: 'output', subfolder: '' }] - } - }, - status: { - status_str: 'success', - completed: true, - messages: [ - [ - 'execution_success', - { prompt_id: 'item-timestamp-1000', timestamp: 1000 } - ] - ] - } - }, - { - prompt_id: 'item-timestamp-2000', - prompt: { - priority: 0, - prompt_id: 'item-timestamp-2000', - extra_data: { - client_id: 'test-client' - } - }, - outputs: { - '2': { - images: [{ filename: 'test2.png', type: 'output', subfolder: '' }] - } - }, - status: { - status_str: 'success', - completed: true, - messages: [ - [ - 'execution_success', - { prompt_id: 'item-timestamp-2000', timestamp: 2000 } - ] - ] - } - }, - { - prompt_id: 'item-no-timestamp', - prompt: { - priority: 0, - prompt_id: 'item-no-timestamp', - extra_data: { - client_id: 'test-client' - } - }, - outputs: { - '3': { - images: [{ filename: 'test3.png', type: 'output', subfolder: '' }] - } - }, - status: { - status_str: 'success', - completed: true, - messages: [] - } - } - ] -} - -export const historyV2FiveItemsSorting: HistoryResponseV2 = { - history: [ - { - prompt_id: 'item-timestamp-3000', - prompt: { - priority: 0, - prompt_id: 'item-timestamp-3000', - extra_data: { client_id: 'test-client' } - }, - outputs: { - '1': { - images: [{ filename: 'test1.png', type: 'output', subfolder: '' }] - } - }, - status: { - status_str: 'success', - completed: true, - messages: [ - [ - 'execution_success', - { prompt_id: 'item-timestamp-3000', timestamp: 3000 } - ] - ] - } - }, - { - prompt_id: 'item-timestamp-1000', - prompt: { - priority: 0, - prompt_id: 'item-timestamp-1000', - extra_data: { client_id: 'test-client' } - }, - outputs: { - '2': { - images: [{ filename: 'test2.png', type: 'output', subfolder: '' }] - } - }, - status: { - status_str: 'success', - completed: true, - messages: [ - [ - 'execution_success', - { prompt_id: 'item-timestamp-1000', timestamp: 1000 } - ] - ] - } - }, - { - prompt_id: 'item-timestamp-5000', - prompt: { - priority: 0, - prompt_id: 'item-timestamp-5000', - extra_data: { client_id: 'test-client' } - }, - outputs: { - '3': { - images: [{ filename: 'test3.png', type: 'output', subfolder: '' }] - } - }, - status: { - status_str: 'success', - completed: true, - messages: [ - [ - 'execution_success', - { prompt_id: 'item-timestamp-5000', timestamp: 5000 } - ] - ] - } - }, - { - prompt_id: 'item-timestamp-2000', - prompt: { - priority: 0, - prompt_id: 'item-timestamp-2000', - extra_data: { client_id: 'test-client' } - }, - outputs: { - '4': { - images: [{ filename: 'test4.png', type: 'output', subfolder: '' }] - } - }, - status: { - status_str: 'success', - completed: true, - messages: [ - [ - 'execution_success', - { prompt_id: 'item-timestamp-2000', timestamp: 2000 } - ] - ] - } - }, - { - prompt_id: 'item-timestamp-4000', - prompt: { - priority: 0, - prompt_id: 'item-timestamp-4000', - extra_data: { client_id: 'test-client' } - }, - outputs: { - '5': { - images: [{ filename: 'test5.png', type: 'output', subfolder: '' }] - } - }, - status: { - status_str: 'success', - completed: true, - messages: [ - [ - 'execution_success', - { prompt_id: 'item-timestamp-4000', timestamp: 4000 } - ] - ] - } - } - ] -} - -export const historyV2MultipleNoTimestamp: HistoryResponseV2 = { - history: [ - { - prompt_id: 'item-no-timestamp-1', - prompt: { - priority: 0, - prompt_id: 'item-no-timestamp-1', - extra_data: { client_id: 'test-client' } - }, - outputs: { - '1': { - images: [{ filename: 'test1.png', type: 'output', subfolder: '' }] - } - }, - status: { - status_str: 'success', - completed: true, - messages: [] - } - }, - { - prompt_id: 'item-no-timestamp-2', - prompt: { - priority: 0, - prompt_id: 'item-no-timestamp-2', - extra_data: { client_id: 'test-client' } - }, - outputs: { - '2': { - images: [{ filename: 'test2.png', type: 'output', subfolder: '' }] - } - }, - status: { - status_str: 'success', - completed: true, - messages: [] - } - }, - { - prompt_id: 'item-no-timestamp-3', - prompt: { - priority: 0, - prompt_id: 'item-no-timestamp-3', - extra_data: { client_id: 'test-client' } - }, - outputs: { - '3': { - images: [{ filename: 'test3.png', type: 'output', subfolder: '' }] - } - }, - status: { - status_str: 'success', - completed: true, - messages: [] - } - } - ] -} diff --git a/tests-ui/tests/litegraph.test.ts b/tests-ui/tests/litegraph.test.ts deleted file mode 100644 index 068da2fb5..000000000 --- a/tests-ui/tests/litegraph.test.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { describe, expect, it } from 'vitest' - -import { LGraph, LGraphNode, LiteGraph } from '@/lib/litegraph/src/litegraph' - -function swapNodes(nodes: LGraphNode[]) { - const firstNode = nodes[0] - const lastNode = nodes[nodes.length - 1] - nodes[0] = lastNode - nodes[nodes.length - 1] = firstNode - return nodes -} - -function createGraph(...nodes: LGraphNode[]) { - const graph = new LGraph() - nodes.forEach((node) => graph.add(node)) - return graph -} - -class DummyNode extends LGraphNode { - constructor() { - super('dummy') - } -} - -describe('LGraph', () => { - it('should serialize deterministic node order', async () => { - LiteGraph.registerNodeType('dummy', DummyNode) - const node1 = new DummyNode() - const node2 = new DummyNode() - const graph = createGraph(node1, node2) - - const result1 = graph.serialize({ sortNodes: true }) - expect(result1.nodes).not.toHaveLength(0) - graph._nodes = swapNodes(graph.nodes) - const result2 = graph.serialize({ sortNodes: true }) - - expect(result1).toEqual(result2) - }) -}) diff --git a/tests-ui/tests/litegraph/README.md b/tests-ui/tests/litegraph/README.md deleted file mode 100644 index eacc17a4c..000000000 --- a/tests-ui/tests/litegraph/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# LiteGraph Tests - -This directory contains the test suite for the LiteGraph library. - -## Structure - -``` -litegraph/ -├── core/ # Core functionality tests (LGraph, LGraphNode, etc.) -├── canvas/ # Canvas-related tests (rendering, interactions) -├── infrastructure/ # Infrastructure tests (Rectangle, utilities) -├── subgraph/ # Subgraph-specific tests -├── utils/ # Utility function tests -└── fixtures/ # Test helpers, fixtures, and assets -``` - -## Running Tests - -```bash -# Run all litegraph tests -pnpm test:unit -- tests-ui/tests/litegraph/ - -# Run specific subdirectory -pnpm test:unit -- tests-ui/tests/litegraph/core/ - -# Run single test file -pnpm test:unit -- tests-ui/tests/litegraph/core/LGraph.test.ts -``` - -## Migration Status - -These tests were migrated from `src/lib/litegraph/test/` to centralize test infrastructure. Currently, some tests are marked with `.skip` due to import/setup issues that need to be resolved. - -### TODO: Fix Skipped Tests - -The following test files have been temporarily disabled and need fixes: -- Most subgraph tests (circular dependency issues) -- Some core tests (missing test utilities) -- Canvas tests (mock setup issues) - -See individual test files marked with `// TODO: Fix these tests after migration` for specific issues. - -## Writing New Tests - -1. Always import from the barrel export to avoid circular dependencies: - ```typescript - import { LGraph, LGraphNode } from '@/lib/litegraph/src/litegraph' - ``` - -2. Use the test fixtures from `fixtures/` directory -3. Follow existing patterns for test organization - -## Test Fixtures - -Test fixtures and helpers are located in the `fixtures/` directory: -- `testExtensions.ts` - Custom vitest extensions -- `subgraphHelpers.ts` - Helpers for creating test subgraphs -- `subgraphFixtures.ts` - Common subgraph test scenarios -- `assets/` - Test data files \ No newline at end of file diff --git a/tests-ui/tests/litegraph/core/__snapshots__/ConfigureGraph.test.ts.snap b/tests-ui/tests/litegraph/core/__snapshots__/ConfigureGraph.test.ts.snap deleted file mode 100644 index 7e9cd555b..000000000 --- a/tests-ui/tests/litegraph/core/__snapshots__/ConfigureGraph.test.ts.snap +++ /dev/null @@ -1,331 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`LGraph configure() > LGraph matches previous snapshot (normal configure() usage) > configuredBasicGraph 1`] = ` -LGraph { - "_groups": [ - LGraphGroup { - "_bounding": Float32Array [ - 20, - 20, - 1, - 3, - ], - "_children": Set {}, - "_nodes": [], - "_pos": Float32Array [ - 20, - 20, - ], - "_size": Float32Array [ - 1, - 3, - ], - "color": "#6029aa", - "flags": {}, - "font": undefined, - "font_size": 14, - "graph": [Circular], - "id": 123, - "isPointInside": [Function], - "selected": undefined, - "setDirtyCanvas": [Function], - "title": "A group to test with", - }, - ], - "_input_nodes": undefined, - "_last_trigger_time": undefined, - "_links": Map {}, - "_nodes": [ - LGraphNode { - "_collapsed_width": undefined, - "_level": undefined, - "_pos": Float32Array [ - 10, - 10, - ], - "_posSize": Float32Array [ - 10, - 10, - 140, - 60, - ], - "_relative_id": undefined, - "_shape": undefined, - "_size": Float32Array [ - 140, - 60, - ], - "action_call": undefined, - "action_triggered": undefined, - "badgePosition": "top-left", - "badges": [], - "bgcolor": undefined, - "block_delete": undefined, - "boxcolor": undefined, - "clip_area": undefined, - "clonable": undefined, - "color": undefined, - "console": undefined, - "exec_version": undefined, - "execute_triggered": undefined, - "flags": {}, - "freeWidgetSpace": undefined, - "gotFocusAt": undefined, - "graph": [Circular], - "has_errors": undefined, - "id": 1, - "ignore_remove": undefined, - "inputs": [], - "last_serialization": undefined, - "locked": undefined, - "lostFocusAt": undefined, - "mode": 0, - "mouseOver": undefined, - "onMouseDown": [Function], - "order": 0, - "outputs": [], - "progress": undefined, - "properties": {}, - "properties_info": [], - "redraw_on_mouse": undefined, - "removable": undefined, - "resizable": undefined, - "selected": undefined, - "serialize_widgets": undefined, - "showAdvanced": undefined, - "strokeStyles": { - "error": [Function], - "selected": [Function], - }, - "title": "LGraphNode", - "title_buttons": [], - "type": "mustBeSet", - "widgets": undefined, - "widgets_start_y": undefined, - "widgets_up": undefined, - }, - ], - "_nodes_by_id": { - "1": LGraphNode { - "_collapsed_width": undefined, - "_level": undefined, - "_pos": Float32Array [ - 10, - 10, - ], - "_posSize": Float32Array [ - 10, - 10, - 140, - 60, - ], - "_relative_id": undefined, - "_shape": undefined, - "_size": Float32Array [ - 140, - 60, - ], - "action_call": undefined, - "action_triggered": undefined, - "badgePosition": "top-left", - "badges": [], - "bgcolor": undefined, - "block_delete": undefined, - "boxcolor": undefined, - "clip_area": undefined, - "clonable": undefined, - "color": undefined, - "console": undefined, - "exec_version": undefined, - "execute_triggered": undefined, - "flags": {}, - "freeWidgetSpace": undefined, - "gotFocusAt": undefined, - "graph": [Circular], - "has_errors": undefined, - "id": 1, - "ignore_remove": undefined, - "inputs": [], - "last_serialization": undefined, - "locked": undefined, - "lostFocusAt": undefined, - "mode": 0, - "mouseOver": undefined, - "onMouseDown": [Function], - "order": 0, - "outputs": [], - "progress": undefined, - "properties": {}, - "properties_info": [], - "redraw_on_mouse": undefined, - "removable": undefined, - "resizable": undefined, - "selected": undefined, - "serialize_widgets": undefined, - "showAdvanced": undefined, - "strokeStyles": { - "error": [Function], - "selected": [Function], - }, - "title": "LGraphNode", - "title_buttons": [], - "type": "mustBeSet", - "widgets": undefined, - "widgets_start_y": undefined, - "widgets_up": undefined, - }, - }, - "_nodes_executable": [], - "_nodes_in_order": [ - LGraphNode { - "_collapsed_width": undefined, - "_level": undefined, - "_pos": Float32Array [ - 10, - 10, - ], - "_posSize": Float32Array [ - 10, - 10, - 140, - 60, - ], - "_relative_id": undefined, - "_shape": undefined, - "_size": Float32Array [ - 140, - 60, - ], - "action_call": undefined, - "action_triggered": undefined, - "badgePosition": "top-left", - "badges": [], - "bgcolor": undefined, - "block_delete": undefined, - "boxcolor": undefined, - "clip_area": undefined, - "clonable": undefined, - "color": undefined, - "console": undefined, - "exec_version": undefined, - "execute_triggered": undefined, - "flags": {}, - "freeWidgetSpace": undefined, - "gotFocusAt": undefined, - "graph": [Circular], - "has_errors": undefined, - "id": 1, - "ignore_remove": undefined, - "inputs": [], - "last_serialization": undefined, - "locked": undefined, - "lostFocusAt": undefined, - "mode": 0, - "mouseOver": undefined, - "onMouseDown": [Function], - "order": 0, - "outputs": [], - "progress": undefined, - "properties": {}, - "properties_info": [], - "redraw_on_mouse": undefined, - "removable": undefined, - "resizable": undefined, - "selected": undefined, - "serialize_widgets": undefined, - "showAdvanced": undefined, - "strokeStyles": { - "error": [Function], - "selected": [Function], - }, - "title": "LGraphNode", - "title_buttons": [], - "type": "mustBeSet", - "widgets": undefined, - "widgets_start_y": undefined, - "widgets_up": undefined, - }, - ], - "_subgraphs": Map {}, - "_version": 3, - "catch_errors": true, - "config": {}, - "elapsed_time": 0.01, - "errors_in_execution": undefined, - "events": CustomEventTarget {}, - "execution_time": undefined, - "execution_timer_id": undefined, - "extra": {}, - "filter": undefined, - "fixedtime": 0, - "fixedtime_lapse": 0.01, - "globaltime": 0, - "id": "ca9da7d8-fddd-4707-ad32-67be9be13140", - "iteration": 0, - "last_update_time": 0, - "links": Map {}, - "list_of_graphcanvas": null, - "nodes_actioning": [], - "nodes_executedAction": [], - "nodes_executing": [], - "revision": 0, - "runningtime": 0, - "starttime": 0, - "state": { - "lastGroupId": 123, - "lastLinkId": 0, - "lastNodeId": 1, - "lastRerouteId": 0, - }, - "status": 1, - "vars": {}, - "version": 1, -} -`; - -exports[`LGraph configure() > LGraph matches previous snapshot (normal configure() usage) > configuredMinGraph 1`] = ` -LGraph { - "_groups": [], - "_input_nodes": undefined, - "_last_trigger_time": undefined, - "_links": Map {}, - "_nodes": [], - "_nodes_by_id": {}, - "_nodes_executable": [], - "_nodes_in_order": [], - "_subgraphs": Map {}, - "_version": 0, - "catch_errors": true, - "config": {}, - "elapsed_time": 0.01, - "errors_in_execution": undefined, - "events": CustomEventTarget {}, - "execution_time": undefined, - "execution_timer_id": undefined, - "extra": {}, - "filter": undefined, - "fixedtime": 0, - "fixedtime_lapse": 0.01, - "globaltime": 0, - "id": "d175890f-716a-4ece-ba33-1d17a513b7be", - "iteration": 0, - "last_update_time": 0, - "links": Map {}, - "list_of_graphcanvas": null, - "nodes_actioning": [], - "nodes_executedAction": [], - "nodes_executing": [], - "revision": 0, - "runningtime": 0, - "starttime": 0, - "state": { - "lastGroupId": 0, - "lastLinkId": 0, - "lastNodeId": 0, - "lastRerouteId": 0, - }, - "status": 1, - "vars": {}, - "version": 1, -} -`; diff --git a/tests-ui/tests/litegraph/core/__snapshots__/LGraph_constructor.test.ts.snap b/tests-ui/tests/litegraph/core/__snapshots__/LGraph_constructor.test.ts.snap deleted file mode 100644 index cd54aa094..000000000 --- a/tests-ui/tests/litegraph/core/__snapshots__/LGraph_constructor.test.ts.snap +++ /dev/null @@ -1,331 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`LGraph (constructor only) > Matches previous snapshot > basicLGraph 1`] = ` -LGraph { - "_groups": [ - LGraphGroup { - "_bounding": Float32Array [ - 20, - 20, - 1, - 3, - ], - "_children": Set {}, - "_nodes": [], - "_pos": Float32Array [ - 20, - 20, - ], - "_size": Float32Array [ - 1, - 3, - ], - "color": "#6029aa", - "flags": {}, - "font": undefined, - "font_size": 14, - "graph": [Circular], - "id": 123, - "isPointInside": [Function], - "selected": undefined, - "setDirtyCanvas": [Function], - "title": "A group to test with", - }, - ], - "_input_nodes": undefined, - "_last_trigger_time": undefined, - "_links": Map {}, - "_nodes": [ - LGraphNode { - "_collapsed_width": undefined, - "_level": undefined, - "_pos": Float32Array [ - 10, - 10, - ], - "_posSize": Float32Array [ - 10, - 10, - 140, - 60, - ], - "_relative_id": undefined, - "_shape": undefined, - "_size": Float32Array [ - 140, - 60, - ], - "action_call": undefined, - "action_triggered": undefined, - "badgePosition": "top-left", - "badges": [], - "bgcolor": undefined, - "block_delete": undefined, - "boxcolor": undefined, - "clip_area": undefined, - "clonable": undefined, - "color": undefined, - "console": undefined, - "exec_version": undefined, - "execute_triggered": undefined, - "flags": {}, - "freeWidgetSpace": undefined, - "gotFocusAt": undefined, - "graph": [Circular], - "has_errors": undefined, - "id": 1, - "ignore_remove": undefined, - "inputs": [], - "last_serialization": undefined, - "locked": undefined, - "lostFocusAt": undefined, - "mode": 0, - "mouseOver": undefined, - "onMouseDown": [Function], - "order": 0, - "outputs": [], - "progress": undefined, - "properties": {}, - "properties_info": [], - "redraw_on_mouse": undefined, - "removable": undefined, - "resizable": undefined, - "selected": undefined, - "serialize_widgets": undefined, - "showAdvanced": undefined, - "strokeStyles": { - "error": [Function], - "selected": [Function], - }, - "title": "LGraphNode", - "title_buttons": [], - "type": "mustBeSet", - "widgets": undefined, - "widgets_start_y": undefined, - "widgets_up": undefined, - }, - ], - "_nodes_by_id": { - "1": LGraphNode { - "_collapsed_width": undefined, - "_level": undefined, - "_pos": Float32Array [ - 10, - 10, - ], - "_posSize": Float32Array [ - 10, - 10, - 140, - 60, - ], - "_relative_id": undefined, - "_shape": undefined, - "_size": Float32Array [ - 140, - 60, - ], - "action_call": undefined, - "action_triggered": undefined, - "badgePosition": "top-left", - "badges": [], - "bgcolor": undefined, - "block_delete": undefined, - "boxcolor": undefined, - "clip_area": undefined, - "clonable": undefined, - "color": undefined, - "console": undefined, - "exec_version": undefined, - "execute_triggered": undefined, - "flags": {}, - "freeWidgetSpace": undefined, - "gotFocusAt": undefined, - "graph": [Circular], - "has_errors": undefined, - "id": 1, - "ignore_remove": undefined, - "inputs": [], - "last_serialization": undefined, - "locked": undefined, - "lostFocusAt": undefined, - "mode": 0, - "mouseOver": undefined, - "onMouseDown": [Function], - "order": 0, - "outputs": [], - "progress": undefined, - "properties": {}, - "properties_info": [], - "redraw_on_mouse": undefined, - "removable": undefined, - "resizable": undefined, - "selected": undefined, - "serialize_widgets": undefined, - "showAdvanced": undefined, - "strokeStyles": { - "error": [Function], - "selected": [Function], - }, - "title": "LGraphNode", - "title_buttons": [], - "type": "mustBeSet", - "widgets": undefined, - "widgets_start_y": undefined, - "widgets_up": undefined, - }, - }, - "_nodes_executable": [], - "_nodes_in_order": [ - LGraphNode { - "_collapsed_width": undefined, - "_level": undefined, - "_pos": Float32Array [ - 10, - 10, - ], - "_posSize": Float32Array [ - 10, - 10, - 140, - 60, - ], - "_relative_id": undefined, - "_shape": undefined, - "_size": Float32Array [ - 140, - 60, - ], - "action_call": undefined, - "action_triggered": undefined, - "badgePosition": "top-left", - "badges": [], - "bgcolor": undefined, - "block_delete": undefined, - "boxcolor": undefined, - "clip_area": undefined, - "clonable": undefined, - "color": undefined, - "console": undefined, - "exec_version": undefined, - "execute_triggered": undefined, - "flags": {}, - "freeWidgetSpace": undefined, - "gotFocusAt": undefined, - "graph": [Circular], - "has_errors": undefined, - "id": 1, - "ignore_remove": undefined, - "inputs": [], - "last_serialization": undefined, - "locked": undefined, - "lostFocusAt": undefined, - "mode": 0, - "mouseOver": undefined, - "onMouseDown": [Function], - "order": 0, - "outputs": [], - "progress": undefined, - "properties": {}, - "properties_info": [], - "redraw_on_mouse": undefined, - "removable": undefined, - "resizable": undefined, - "selected": undefined, - "serialize_widgets": undefined, - "showAdvanced": undefined, - "strokeStyles": { - "error": [Function], - "selected": [Function], - }, - "title": "LGraphNode", - "title_buttons": [], - "type": "mustBeSet", - "widgets": undefined, - "widgets_start_y": undefined, - "widgets_up": undefined, - }, - ], - "_subgraphs": Map {}, - "_version": 3, - "catch_errors": true, - "config": {}, - "elapsed_time": 0.01, - "errors_in_execution": undefined, - "events": CustomEventTarget {}, - "execution_time": undefined, - "execution_timer_id": undefined, - "extra": {}, - "filter": undefined, - "fixedtime": 0, - "fixedtime_lapse": 0.01, - "globaltime": 0, - "id": "ca9da7d8-fddd-4707-ad32-67be9be13140", - "iteration": 0, - "last_update_time": 0, - "links": Map {}, - "list_of_graphcanvas": null, - "nodes_actioning": [], - "nodes_executedAction": [], - "nodes_executing": [], - "revision": 0, - "runningtime": 0, - "starttime": 0, - "state": { - "lastGroupId": 123, - "lastLinkId": 0, - "lastNodeId": 1, - "lastRerouteId": 0, - }, - "status": 1, - "vars": {}, - "version": 1, -} -`; - -exports[`LGraph (constructor only) > Matches previous snapshot > minLGraph 1`] = ` -LGraph { - "_groups": [], - "_input_nodes": undefined, - "_last_trigger_time": undefined, - "_links": Map {}, - "_nodes": [], - "_nodes_by_id": {}, - "_nodes_executable": [], - "_nodes_in_order": [], - "_subgraphs": Map {}, - "_version": 0, - "catch_errors": true, - "config": {}, - "elapsed_time": 0.01, - "errors_in_execution": undefined, - "events": CustomEventTarget {}, - "execution_time": undefined, - "execution_timer_id": undefined, - "extra": {}, - "filter": undefined, - "fixedtime": 0, - "fixedtime_lapse": 0.01, - "globaltime": 0, - "id": "d175890f-716a-4ece-ba33-1d17a513b7be", - "iteration": 0, - "last_update_time": 0, - "links": Map {}, - "list_of_graphcanvas": null, - "nodes_actioning": [], - "nodes_executedAction": [], - "nodes_executing": [], - "revision": 0, - "runningtime": 0, - "starttime": 0, - "state": { - "lastGroupId": 0, - "lastLinkId": 0, - "lastNodeId": 0, - "lastRerouteId": 0, - }, - "status": 1, - "vars": {}, - "version": 1, -} -`; diff --git a/tests-ui/tsconfig.json b/tests-ui/tsconfig.json deleted file mode 100644 index f600c4a7f..000000000 --- a/tests-ui/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - /* Test files should not be compiled */ - "noEmit": true, - // "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "resolveJsonModule": true - }, - "include": [ - "**/*.ts", - ] -} diff --git a/vitest.config.ts b/vitest.config.ts index 1dab6ffd1..b74f7496c 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -19,8 +19,8 @@ export default defineConfig({ setupFiles: ['./vitest.setup.ts'], retry: process.env.CI ? 2 : 0, include: [ - 'tests-ui/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}', - 'src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}' + 'src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}', + 'packages/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}' ], coverage: { reporter: ['text', 'json', 'html'] @@ -39,7 +39,6 @@ export default defineConfig({ '@/utils/formatUtil': '/packages/shared-frontend-utils/src/formatUtil.ts', '@/utils/networkUtil': '/packages/shared-frontend-utils/src/networkUtil.ts', - '@tests-ui': '/tests-ui', '@': '/src' } },