camunda对BPMN流程定义解析、执行、展现的JS库
var docXml = '<?xml version……'</definitions>';
var processDefinition = new Transformer().transform(docXml)[0];
var execution = new CAM.ActivityExecution(processDefinition);
execution.variables.input = 10;
execution.start();
//活动没结束
expect(execution.isEnded).toBe(false);
var processInstance = execution.getActivityInstance();
//expect(XXX).toBe(XXX2);是判断XXX是否等于XXX2的意思
//以下说明执行完的活动数量
expect(processInstance.activities.length).toBe(2);
expect(processInstance.activities[0].activityId).toBe("theStart");
expect(processInstance.activities[1].activityId).toBe("userTask");
// 为userTask发送一个信号
execution.activityExecutions[1].signal();
execution.activityExecutions[2].signal();
// 现在流程结束了
expect(execution.isEnded).toBe(true);
//以下说明流程实例的执行情况
processInstance = execution.getActivityInstance();
expect(processInstance.activities.length).toBe(4);
expect(processInstance.activities[0].activityId).toBe("theStart");
expect(processInstance.activities[1].activityId).toBe("userTask");
expect(processInstance.activities[3].activityId).toBe("theEnd");