node-red-camunda8
Version:
Camunda 8 nodes for Node-RED
122 lines (103 loc) • 3.25 kB
JavaScript
const helper = require('node-red-node-test-helper');
const completeTaskNode = require('../src/nodes/complete-task.js');
helper.init(require.resolve('node-red'));
const jobMock = {
complete: jest.fn(),
fail: jest.fn(),
error: jest.fn(),
variables: { workflowId: 123 },
};
describe('complete-task node', () => {
beforeEach((done) => {
helper.startServer(done);
jest.resetAllMocks();
});
afterEach((done) => {
helper.unload();
helper.stopServer(done);
});
it('should call job.complete with variables', (done) => {
const flow = [
{
id: 'n1',
type: 'complete-task',
name: 'complete-task',
},
];
helper.load([completeTaskNode], flow, () => {
const n1 = helper.getNode('n1');
jobMock.complete.mockImplementation(() => {
expect(jobMock.complete).toHaveBeenCalledTimes(1);
expect(jobMock.complete).toHaveBeenCalledWith(jobMock.variables);
done();
});
n1.receive({
payload: {
job: jobMock,
variables: jobMock.variables,
},
});
});
});
it('should call complete.failure', (done) => {
const flow = [
{
id: 'n1',
type: 'complete-task',
name: 'complete-task',
},
];
helper.load([completeTaskNode], flow, () => {
const failureMessage = 'oops';
const n1 = helper.getNode('n1');
jobMock.fail.mockImplementation(() => {
expect(jobMock.fail).toHaveBeenCalledTimes(1);
expect(jobMock.fail).toHaveBeenCalledWith(
failureMessage,
);
done();
});
n1.receive({
payload: {
job: jobMock,
type: 'failure',
failureMessage,
},
});
});
});
it('should call complete.error', (done) => {
const flow = [
{
id: 'n1',
type: 'complete-task',
name: 'complete-task',
},
];
helper.load([completeTaskNode], flow, () => {
const errorCode = '404';
const errorMessage = 'Error Not Found';
const n1 = helper.getNode('n1');
jobMock.error.mockImplementation(() => {
expect(jobMock.error).toHaveBeenCalledTimes(1);
expect(jobMock.error).toHaveBeenCalledWith(
{
errorCode,
errorMessage,
variables: jobMock.variables,
},
);
done();
});
n1.receive({
payload: {
job: jobMock,
type: 'error',
errorCode,
errorMessage,
variables: jobMock.variables,
},
});
});
});
});