-
Notifications
You must be signed in to change notification settings - Fork 3.7k
/
integ.intrinsics.ts
56 lines (51 loc) · 2.86 KB
/
integ.intrinsics.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import * as cdk from '@aws-cdk/core';
import * as integ from '@aws-cdk/integ-tests';
import { JsonPath, Pass, StateMachine } from '../lib';
/*
* Stack verification steps:
*
* -- aws stepfunctions describe-state-machine --state-machine-arn <stack-output> has a status of `ACTIVE`
*/
const app = new cdk.App();
const stack = new cdk.Stack(app, 'aws-stepfunctions-intrinsics-integ');
const pass = new Pass(stack, 'pass', {
parameters: {
array1: JsonPath.array('asdf', JsonPath.stringAt('$.Id')),
arrayPartition1: JsonPath.arrayPartition(JsonPath.listAt('$.inputArray'), 4),
arrayPartition2: JsonPath.arrayPartition(JsonPath.listAt('$.inputArray'), JsonPath.numberAt('$.chunkSize')),
arrayContains1: JsonPath.arrayContains(JsonPath.listAt('$.inputArray'), 5),
arrayContains2: JsonPath.arrayContains(JsonPath.listAt('$.inputArray'), 'a'),
arrayContains3: JsonPath.arrayContains(JsonPath.listAt('$.inputArray'), JsonPath.numberAt('$.lookingFor')),
arrayRange1: JsonPath.arrayRange(1, 9, 2),
arrayRange2: JsonPath.arrayRange(JsonPath.numberAt('$.start'), JsonPath.numberAt('$.end'), JsonPath.numberAt('$.step')),
arrayGetItem1: JsonPath.arrayGetItem(JsonPath.listAt('$.inputArray'), 5),
arrayGetItem2: JsonPath.arrayGetItem(JsonPath.numberAt('$.inputArray'), JsonPath.numberAt('$.index')),
arrayLength1: JsonPath.arrayLength(JsonPath.listAt('$.inputArray')),
arrayUnique1: JsonPath.arrayUnique(JsonPath.listAt('$.inputArray')),
base64Encode1: JsonPath.base64Encode('Data to encode'),
base64Encode2: JsonPath.base64Encode(JsonPath.stringAt('$.input')),
base64Decode1: JsonPath.base64Decode('RGF0YSB0byBlbmNvZGU='),
base64Decode2: JsonPath.base64Decode(JsonPath.stringAt('$.base64')),
hash1: JsonPath.hash('Input data', 'SHA-1'),
hash2: JsonPath.hash(JsonPath.objectAt('$.Data'), JsonPath.stringAt('$.Algorithm')),
jsonMerge1: JsonPath.jsonMerge(JsonPath.objectAt('$.Obj1'), JsonPath.objectAt('$.Obj2')),
mathRandom1: JsonPath.mathRandom(1, 999),
mathRandom2: JsonPath.mathRandom(JsonPath.numberAt('$.start'), JsonPath.numberAt('$.end')),
mathAdd1: JsonPath.mathAdd(1, 999),
mathAdd2: JsonPath.mathAdd(JsonPath.numberAt('$.value1'), JsonPath.numberAt('$.step')),
stringSplit1: JsonPath.stringSplit('1,2,3,4,5', ','),
stringSplit2: JsonPath.stringSplit(JsonPath.stringAt('$.inputString'), JsonPath.stringAt('$.splitter')),
uuid: JsonPath.uuid(),
format1: JsonPath.format('Hi my name is {}.', JsonPath.stringAt('$.Name')),
format2: JsonPath.format(JsonPath.stringAt('$.Format'), JsonPath.stringAt('$.Name')),
stringToJson1: JsonPath.stringToJson(JsonPath.stringAt('$.Str')),
jsonToString1: JsonPath.jsonToString(JsonPath.objectAt('$.Obj')),
},
});
new StateMachine(stack, 'StateMachine', {
definition: pass,
});
new integ.IntegTest(app, 'StateMachineIntrinsicsTest', {
testCases: [stack],
});
app.synth();