From 6cd59381b8a4457fbe5ab8ac9e9687314294c7c1 Mon Sep 17 00:00:00 2001 From: bymyself Date: Sat, 13 Sep 2025 23:46:31 -0700 Subject: [PATCH] fix: update LGraphNode test to mock useNodeExecutionState properly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The test was failing because it passed executing as a prop, but the component uses the useNodeExecutionState composable. Added proper mock for the composable to test the animate-pulse class application during execution. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../vueNodes/components/LGraphNode.spec.ts | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/tests-ui/tests/renderer/extensions/vueNodes/components/LGraphNode.spec.ts b/tests-ui/tests/renderer/extensions/vueNodes/components/LGraphNode.spec.ts index d8df32f344..6e34e2450f 100644 --- a/tests-ui/tests/renderer/extensions/vueNodes/components/LGraphNode.spec.ts +++ b/tests-ui/tests/renderer/extensions/vueNodes/components/LGraphNode.spec.ts @@ -1,13 +1,14 @@ import { createTestingPinia } from '@pinia/testing' import { mount } from '@vue/test-utils' import { beforeEach, describe, expect, it, vi } from 'vitest' -import { ref } from 'vue' +import { computed, ref } from 'vue' import { createI18n } from 'vue-i18n' import type { VueNodeData } from '@/composables/graph/useGraphNodeManager' import { SelectedNodeIdsKey } from '@/renderer/core/canvas/injectionKeys' import LGraphNode from '@/renderer/extensions/vueNodes/components/LGraphNode.vue' import { useVueElementTracking } from '@/renderer/extensions/vueNodes/composables/useVueNodeResizeTracking' +import { useNodeExecutionState } from '@/renderer/extensions/vueNodes/execution/useNodeExecutionState' vi.mock( '@/renderer/extensions/vueNodes/composables/useVueNodeResizeTracking', @@ -42,6 +43,19 @@ vi.mock('@/renderer/extensions/vueNodes/lod/useLOD', () => ({ LODLevel: { MINIMAL: 0 } })) +vi.mock( + '@/renderer/extensions/vueNodes/execution/useNodeExecutionState', + () => ({ + useNodeExecutionState: vi.fn(() => ({ + executing: computed(() => false), + progress: computed(() => undefined), + progressPercentage: computed(() => undefined), + progressState: computed(() => undefined as any), + executionState: computed(() => 'idle' as const) + })) + }) +) + const i18n = createI18n({ legacy: false, locale: 'en', @@ -92,6 +106,14 @@ describe('LGraphNode', () => { beforeEach(() => { vi.clearAllMocks() + // Reset to default mock + vi.mocked(useNodeExecutionState).mockReturnValue({ + executing: computed(() => false), + progress: computed(() => undefined), + progressPercentage: computed(() => undefined), + progressState: computed(() => undefined as any), + executionState: computed(() => 'idle' as const) + }) }) it('should call resize tracking composable with node ID', () => { @@ -143,7 +165,16 @@ describe('LGraphNode', () => { }) it('should apply executing animation when executing prop is true', () => { - const wrapper = mountLGraphNode({ nodeData: mockNodeData, executing: true }) + // Mock the execution state to return executing: true + vi.mocked(useNodeExecutionState).mockReturnValue({ + executing: computed(() => true), + progress: computed(() => undefined), + progressPercentage: computed(() => undefined), + progressState: computed(() => undefined as any), + executionState: computed(() => 'running' as const) + }) + + const wrapper = mountLGraphNode({ nodeData: mockNodeData }) expect(wrapper.classes()).toContain('animate-pulse') })