1
1
import { expect } from "chai" ;
2
2
3
3
import { createSubworkflowByName } from "../src/subworkflows" ;
4
+ import { AssignmentUnit , ConditionUnit } from "../src/units" ;
5
+
6
+ const assignmentUnitData = {
7
+ type : "assignment" ,
8
+ application : { name : "espresso" , version : "5.4.0" } ,
9
+ } ;
10
+
11
+ const conditionUnitData = {
12
+ type : "condition" ,
13
+ application : { name : "espresso" , version : "5.4.0" } ,
14
+ } ;
4
15
5
16
describe ( "subworkflows" , ( ) => {
6
17
it ( "have updateContext function" , ( ) => {
@@ -19,4 +30,59 @@ describe("subworkflows", () => {
19
30
subworkflow . updateContext ( newContext ) ;
20
31
expect ( subworkflow . context ) . to . include ( newContext ) ;
21
32
} ) ;
33
+ it ( "add unit to list end" , ( ) => {
34
+ const subworkflow = createSubworkflowByName ( {
35
+ appName : "espresso" ,
36
+ swfName : "total_energy" ,
37
+ } ) ;
38
+
39
+ expect ( subworkflow . units . length ) . to . be . equal ( 1 ) ;
40
+ expect ( subworkflow . units [ 0 ] . _json . type ) . to . be . equal ( "execution" ) ;
41
+
42
+ const assignementUnit = new AssignmentUnit ( assignmentUnitData ) ;
43
+ subworkflow . addUnit ( assignementUnit , - 1 ) ;
44
+
45
+ expect ( subworkflow . units . length ) . to . be . equal ( 2 ) ;
46
+ expect ( subworkflow . units [ 0 ] . _json . type ) . to . be . equal ( "execution" ) ;
47
+ expect ( subworkflow . units [ 1 ] . _json . type ) . to . be . equal ( "assignment" ) ;
48
+ } ) ;
49
+ it ( "add unit to list head" , ( ) => {
50
+ const subworkflow = createSubworkflowByName ( {
51
+ appName : "espresso" ,
52
+ swfName : "total_energy" ,
53
+ } ) ;
54
+
55
+ expect ( subworkflow . units . length ) . to . be . equal ( 1 ) ;
56
+ expect ( subworkflow . units [ 0 ] . _json . type ) . to . be . equal ( "execution" ) ;
57
+
58
+ const assignementUnit = new AssignmentUnit ( assignmentUnitData ) ;
59
+ subworkflow . addUnit ( assignementUnit , 0 ) ;
60
+
61
+ expect ( subworkflow . units . length ) . to . be . equal ( 2 ) ;
62
+ expect ( subworkflow . units [ 0 ] . _json . type ) . to . be . equal ( "assignment" ) ;
63
+ expect ( subworkflow . units [ 1 ] . _json . type ) . to . be . equal ( "execution" ) ;
64
+ } ) ;
65
+ it ( "add unit in the middle list of two" , ( ) => {
66
+ const subworkflow = createSubworkflowByName ( {
67
+ appName : "espresso" ,
68
+ swfName : "total_energy" ,
69
+ } ) ;
70
+ expect ( subworkflow . units . length ) . to . be . equal ( 1 ) ;
71
+ expect ( subworkflow . units [ 0 ] . _json . type ) . to . be . equal ( "execution" ) ;
72
+
73
+ const assignementUnit = new AssignmentUnit ( assignmentUnitData ) ;
74
+ const conditionUnit = new ConditionUnit ( conditionUnitData ) ;
75
+ subworkflow . addUnit ( assignementUnit , - 1 ) ;
76
+
77
+ expect ( subworkflow . units . length ) . to . be . equal ( 2 ) ;
78
+ expect ( subworkflow . units [ 0 ] . _json . type ) . to . be . equal ( "execution" ) ;
79
+ expect ( subworkflow . units [ 1 ] . _json . type ) . to . be . equal ( "assignment" ) ;
80
+
81
+ subworkflow . addUnit ( conditionUnit , 1 ) ;
82
+
83
+ expect ( subworkflow . units . length ) . to . be . equal ( 3 ) ;
84
+ expect ( subworkflow . units [ 0 ] . _json . type ) . to . be . equal ( "execution" ) ;
85
+ expect ( subworkflow . units [ 1 ] . _json . type ) . to . be . equal ( "condition" ) ;
86
+ expect ( subworkflow . units [ 2 ] . _json . type ) . to . be . equal ( "assignment" ) ;
87
+ } ) ;
22
88
} ) ;
0 commit comments