import { mock } from 'jest-mock-extended'; import type { INode } from 'n8n-workflow'; import { NodeOperationError, type Workflow } from 'n8n-workflow'; import { objectToError } from '../object-to-error'; describe('objectToError', () => { describe('node error handling', () => { it('should create `NodeOperationError` when node is found', () => { const errorObject = { message: 'Test error', node: { name: 'testNode', }, }; const workflow = mock(); const node = mock(); workflow.getNode.mockReturnValue(node); const result = objectToError(errorObject, workflow); expect(workflow.getNode).toHaveBeenCalledWith('testNode'); expect(result).toBeInstanceOf(NodeOperationError); }); it('should create `Error` when node is not found', () => { const errorObject = { message: 'Test error', node: { // missing `name` }, }; const workflow = mock(); const result = objectToError(errorObject, workflow); expect(workflow.getNode).not.toHaveBeenCalled(); expect(result).toBeInstanceOf(Error); expect(result).not.toBeInstanceOf(NodeOperationError); expect(result.message).toBe('Test error'); }); }); });