UNPKG

netpad-cli

Version:

NetPad CLI for plugin management, workflows, and more.

85 lines (69 loc) 2.61 kB
/** * {{displayName}} Node Runner Tests */ import run{{name.replace(/-/g, '').replace(/\b\w/g, l => l.toUpperCase())}}Node from '../src/runner.js'; describe('{{displayName}} Node Runner', () => { let mockHelpers; let mockNode; beforeEach(() => { mockHelpers = { getInput: jest.fn(), setOutput: jest.fn(), trigger: jest.fn(), context: { userId: 'test-user', workflowId: 'test-workflow' }, log: jest.fn() }; mockNode = { id: 'test-node-id', type: '{{name}}', params: {} }; }); test('should process input correctly', async () => { // Arrange const testInput = { message: 'test input' }; mockHelpers.getInput.mockResolvedValue(testInput); // Act await run{{name.replace(/-/g, '').replace(/\b\w/g, l => l.toUpperCase())}}Node(mockNode, mockHelpers); // Assert expect(mockHelpers.getInput).toHaveBeenCalledWith('input'); expect(mockHelpers.setOutput).toHaveBeenCalledWith('output', expect.objectContaining({ ...testInput, processedBy: '{{displayName}}', processedAt: expect.any(String) })); expect(mockHelpers.trigger).toHaveBeenCalledWith('output'); }); test('should handle missing input gracefully', async () => { // Arrange mockHelpers.getInput.mockResolvedValue(null); // Act await run{{name.replace(/-/g, '').replace(/\b\w/g, l => l.toUpperCase())}}Node(mockNode, mockHelpers); // Assert expect(mockHelpers.setOutput).toHaveBeenCalledWith('output', expect.objectContaining({ message: 'Hello from {{displayName}}!', timestamp: expect.any(String) })); }); test('should log execution steps', async () => { // Arrange mockHelpers.getInput.mockResolvedValue({ test: 'data' }); // Act await run{{name.replace(/-/g, '').replace(/\b\w/g, l => l.toUpperCase())}}Node(mockNode, mockHelpers); // Assert expect(mockHelpers.log).toHaveBeenCalledWith(expect.stringContaining('Executing {{displayName}} node')); expect(mockHelpers.log).toHaveBeenCalledWith(expect.stringContaining('completed successfully')); }); test('should handle errors and re-throw', async () => { // Arrange const error = new Error('Test error'); mockHelpers.getInput.mockRejectedValue(error); // Act & Assert await expect(run{{name.replace(/-/g, '').replace(/\b\w/g, l => l.toUpperCase())}}Node(mockNode, mockHelpers)) .rejects.toThrow('Test error'); expect(mockHelpers.log).toHaveBeenCalledWith(expect.stringContaining('Error in {{displayName}} node')); }); });