UNPKG

1.84 kBJavaScriptView Raw
1
2const assert = require("chai").assert
3// const d = require("debug")("raptorjs:test:workflow")
4const util = require("../util")
5
6const newInstanceName = () => "workflow_test" + Math.floor(Date.now() * Math.random())
7
8
9const create = async(instanceName) => {
10
11 const r = await util.getRaptor()
12 await r.Workflow().create(instanceName)
13 const list = await r.Workflow().list()
14
15 assert.equal(1, list.filter(((n) => instanceName === n.Name)).length)
16
17 return Promise.resolve()
18}
19
20describe("Workflow", function () {
21
22 // before(util.before)
23 // after(util.after)
24
25 // spawing node-red containers can take a while
26 this.timeout(15000)
27
28 it("should list all workflows", async () => {
29
30 const r = await util.getRaptor()
31 const list = await r.Workflow().list()
32 assert.isTrue(list instanceof Array)
33
34 return Promise.resolve()
35 })
36
37 it("should create a workflow", () => create(newInstanceName()))
38
39 it("should get a workflow", async () => {
40
41 const instanceName = newInstanceName()
42 await create(instanceName)
43
44 const r = await util.getRaptor()
45
46 let instance = await r.Workflow().get(instanceName)
47 assert.equal(instance.Name, instanceName)
48
49 return Promise.resolve()
50 })
51
52 it("should restart a workflow", async () => {
53
54 const r = await util.getRaptor()
55 const instanceName = newInstanceName()
56 await create(instanceName)
57
58 await r.Workflow().stop(instanceName)
59 let instance = await r.Workflow().get(instanceName)
60 assert.equal(r.Workflow().states.stopped, instance.Status)
61
62 await r.Workflow().start(instanceName)
63 instance = await r.Workflow().get(instanceName)
64 assert.equal(r.Workflow().states.started, instance.Status)
65
66 return Promise.resolve()
67 })
68
69})