diff --git a/packages/frontend/editor-ui/src/components/canvas/elements/nodes/render-types/parts/CanvasNodeStatusIcons.test.ts b/packages/frontend/editor-ui/src/components/canvas/elements/nodes/render-types/parts/CanvasNodeStatusIcons.test.ts index eaf9d9867da..9afe102ece7 100644 --- a/packages/frontend/editor-ui/src/components/canvas/elements/nodes/render-types/parts/CanvasNodeStatusIcons.test.ts +++ b/packages/frontend/editor-ui/src/components/canvas/elements/nodes/render-types/parts/CanvasNodeStatusIcons.test.ts @@ -104,4 +104,57 @@ describe('CanvasNodeStatusIcons', () => { expect(getByTestId('canvas-node-status-warning')).toBeInTheDocument(); }); + + describe('status precedence', () => { + it('should render executing status even if node is invalid', () => { + const { getByTestId, queryByTestId } = renderComponent({ + global: { + provide: { + ...createCanvasProvide({ + isExecuting: true, + }), + ...createCanvasNodeProvide({ + data: { + execution: { running: true }, + runData: { outputMap: {}, iterations: 15, visible: true }, + render: { + type: CanvasNodeRenderType.Default, + options: { dirtiness: CanvasNodeDirtiness.PARAMETERS_UPDATED }, + }, + }, + }), + }, + }, + }); + + expect(getByTestId('canvas-node-status-running')).toBeVisible(); + expect(queryByTestId('canvas-node-status-warning')).not.toBeInTheDocument(); + }); + + it('should render executing status even if node is disabled', () => { + const { getByTestId, queryByTestId } = renderComponent({ + global: { + provide: { + ...createCanvasProvide({ + isExecuting: true, + }), + ...createCanvasNodeProvide({ + data: { + disabled: true, + execution: { running: true }, + runData: { outputMap: {}, iterations: 15, visible: true }, + render: { + type: CanvasNodeRenderType.Default, + options: { dirtiness: CanvasNodeDirtiness.PARAMETERS_UPDATED }, + }, + }, + }), + }, + }, + }); + + expect(getByTestId('canvas-node-status-running')).toBeVisible(); + expect(queryByTestId('canvas-node-status-warning')).not.toBeInTheDocument(); + }); + }); }); diff --git a/packages/frontend/editor-ui/src/components/canvas/elements/nodes/render-types/parts/CanvasNodeStatusIcons.vue b/packages/frontend/editor-ui/src/components/canvas/elements/nodes/render-types/parts/CanvasNodeStatusIcons.vue index ad406e629f7..497019f241b 100644 --- a/packages/frontend/editor-ui/src/components/canvas/elements/nodes/render-types/parts/CanvasNodeStatusIcons.vue +++ b/packages/frontend/editor-ui/src/components/canvas/elements/nodes/render-types/parts/CanvasNodeStatusIcons.vue @@ -48,7 +48,27 @@ const commonClasses = computed(() => [$style.status, spinnerScrim ? $style.spinn