@@ -21,7 +21,7 @@ import type {
21
21
} from '../../../src/types/schema' ;
22
22
import { getTestEvent } from './utils.js' ;
23
23
24
- describe ( 'Kinesis ' , ( ) => {
24
+ describe ( 'Schema: Kinesis ' , ( ) => {
25
25
const eventsPath = 'kinesis' ;
26
26
27
27
const kinesisStreamEvent = getTestEvent < KinesisDataStreamEvent > ( {
@@ -56,8 +56,11 @@ describe('Kinesis ', () => {
56
56
}
57
57
) ;
58
58
59
- it ( 'should parse kinesis event' , ( ) => {
59
+ it ( 'parses kinesis event' , ( ) => {
60
+ // Prepare
60
61
const testEvent = structuredClone ( kinesisStreamEvent ) ;
62
+
63
+ // Act
61
64
const parsed = KinesisDataStreamSchema . parse ( testEvent ) ;
62
65
63
66
const transformedInput = {
@@ -72,10 +75,14 @@ describe('Kinesis ', () => {
72
75
} ) ,
73
76
} ;
74
77
78
+ // Assess
75
79
expect ( parsed ) . toStrictEqual ( transformedInput ) ;
76
80
} ) ;
77
- it ( 'should parse single kinesis record' , ( ) => {
81
+ it ( 'parses single kinesis record' , ( ) => {
82
+ // Prepare
78
83
const testEvent = structuredClone ( kinesisStreamEventOneRecord ) ;
84
+
85
+ // Act
79
86
const parsed = KinesisDataStreamSchema . parse ( testEvent ) ;
80
87
81
88
const transformedInput = {
@@ -92,10 +99,14 @@ describe('Kinesis ', () => {
92
99
} ) ,
93
100
} ;
94
101
102
+ // Assess
95
103
expect ( parsed ) . toStrictEqual ( transformedInput ) ;
96
104
} ) ;
97
- it ( 'should parse Firehose event' , ( ) => {
105
+ it ( 'parses Firehose event' , ( ) => {
106
+ // Prepare
98
107
const testEvent = structuredClone ( kinesisFirehoseEvent ) ;
108
+
109
+ // Act
99
110
const parsed = KinesisFirehoseSchema . parse ( testEvent ) ;
100
111
101
112
const transformedInput = {
@@ -108,11 +119,15 @@ describe('Kinesis ', () => {
108
119
} ;
109
120
} ) ,
110
121
} ;
122
+
123
+ // Assess
111
124
expect ( parsed ) . toStrictEqual ( transformedInput ) ;
112
125
} ) ;
113
- it ( 'should parse Kinesis Firehose PutEvents event' , ( ) => {
126
+ it ( 'parses Kinesis Firehose PutEvents event' , ( ) => {
127
+ // Prepare
114
128
const testEvent = structuredClone ( kinesisFirehosePutEvent ) ;
115
129
130
+ // Act
116
131
const parsed = KinesisFirehoseSchema . parse ( testEvent ) ;
117
132
118
133
const transformedInput = {
@@ -125,11 +140,14 @@ describe('Kinesis ', () => {
125
140
} ) ,
126
141
} ;
127
142
143
+ // Assess
128
144
expect ( parsed ) . toStrictEqual ( transformedInput ) ;
129
145
} ) ;
130
- it ( 'should parse Firehose event with SQS event' , ( ) => {
146
+ it ( 'parses Firehose event with SQS event' , ( ) => {
147
+ // Prepare
131
148
const testEvent = structuredClone ( kinesisFirehoseSQSEvent ) ;
132
149
150
+ // Act
133
151
const parsed = KinesisFirehoseSqsSchema . parse ( testEvent ) ;
134
152
135
153
const transformedInput = {
@@ -138,21 +156,24 @@ describe('Kinesis ', () => {
138
156
return {
139
157
...record ,
140
158
data : JSON . parse (
141
- Buffer . from ( record . data as string , 'base64' ) . toString ( )
159
+ Buffer . from ( record . data as unknown as string , 'base64' ) . toString ( )
142
160
) ,
143
161
} ;
144
162
} ) ,
145
163
} ;
146
164
165
+ // Assess
147
166
expect ( parsed ) . toStrictEqual ( transformedInput ) ;
148
167
} ) ;
149
- it ( 'should parse Kinesis event with CloudWatch event' , ( ) => {
168
+ it ( 'parses Kinesis event with CloudWatch event' , ( ) => {
169
+ // Prepare
150
170
const testEvent = structuredClone ( kinesisStreamCloudWatchLogsEvent ) ;
151
171
172
+ // Act
152
173
const parsed = KinesisDataStreamSchema . parse ( testEvent ) ;
153
174
154
175
const transformedInput = {
155
- Records : testEvent . Records . map ( ( record , index ) => {
176
+ Records : testEvent . Records . map ( ( record ) => {
156
177
return {
157
178
...record ,
158
179
kinesis : {
@@ -167,31 +188,39 @@ describe('Kinesis ', () => {
167
188
} ) ,
168
189
} ;
169
190
191
+ // Assess
170
192
expect ( parsed ) . toStrictEqual ( transformedInput ) ;
171
193
} ) ;
172
- it ( 'should return original value if cannot parse KinesisFirehoseSqsRecord' , ( ) => {
173
- const testEvent = structuredClone ( kinesisFirehoseSQSEvent ) ;
174
- testEvent . records [ 0 ] . data = 'not a valid json' ;
175
-
176
- const parsed = KinesisFirehoseSqsSchema . parse ( testEvent ) ;
194
+ it ( 'throws if cannot parse SQS record of KinesisFirehoseSqsRecord' , ( ) => {
195
+ // Prepare
196
+ const testEvent = getTestEvent < KinesisFireHoseSqsEvent > ( {
197
+ eventsPath,
198
+ filename : 'firehose-sqs-invalid' ,
199
+ } ) ;
177
200
178
- expect ( parsed ) . toStrictEqual ( testEvent ) ;
201
+ // Act & Assess
202
+ expect ( ( ) => KinesisFirehoseSqsSchema . parse ( testEvent ) ) . toThrow ( ) ;
179
203
} ) ;
180
- it ( 'should parse a kinesis record from a kinesis event' , ( ) => {
204
+ it ( 'parses a kinesis record from a kinesis event' , ( ) => {
205
+ // Prepare
181
206
const testEvent : KinesisDataStreamEvent =
182
207
structuredClone ( kinesisStreamEvent ) ;
183
208
209
+ // Act
184
210
const parsedRecord = KinesisDataStreamRecord . parse ( testEvent . Records [ 0 ] ) ;
185
211
212
+ // Assess
186
213
expect ( parsedRecord . eventSource ) . toEqual ( 'aws:kinesis' ) ;
187
214
expect ( parsedRecord . eventName ) . toEqual ( 'aws:kinesis:record' ) ;
188
215
} ) ;
189
216
190
- it ( 'should parse a kinesis record from dynamodb stream event' , ( ) => {
217
+ it ( 'parses a kinesis record from dynamodb stream event' , ( ) => {
218
+ // Prepare
191
219
const testEvent = getTestEvent < KinesisDynamoDBStreamEvent > ( {
192
220
eventsPath,
193
221
filename : 'dynamodb-stream' ,
194
222
} ) ;
223
+
195
224
const expectedRecords = [
196
225
{
197
226
awsRegion : 'eu-west-1' ,
@@ -231,26 +260,36 @@ describe('Kinesis ', () => {
231
260
} ,
232
261
] ;
233
262
263
+ // Act
234
264
const parsedRecord = KinesisDynamoDBStreamSchema . parse ( testEvent ) ;
235
265
266
+ // Assess
236
267
expect ( parsedRecord . Records . map ( ( record ) => record . kinesis . data ) ) . toEqual (
237
268
expectedRecords
238
269
) ;
239
270
} ) ;
240
271
241
- it ( 'should parse a kinesis firehose record from a kinesis firehose event' , ( ) => {
272
+ it ( 'parses a kinesis firehose record from a kinesis firehose event' , ( ) => {
273
+ // Prepare
242
274
const testEvent = structuredClone ( kinesisFirehoseEvent ) ;
275
+
276
+ // Act
243
277
const parsedRecord : KinesisFirehoseRecord =
244
278
KinesisFirehoseRecordSchema . parse ( testEvent . records [ 0 ] ) ;
245
279
280
+ // Assess
246
281
expect ( parsedRecord . data ) . toEqual ( 'Hello World' ) ;
247
282
} ) ;
248
283
249
- it ( 'should parse a sqs record from a kinesis firehose event' , ( ) => {
284
+ it ( 'parses a sqs record from a kinesis firehose event' , ( ) => {
285
+ // Prepare
250
286
const kinesisFireHoseSqsEvent = structuredClone ( kinesisFirehoseSQSEvent ) ;
287
+
288
+ // Act
251
289
const parsed : KinesisFirehoseSqsRecord =
252
290
KinesisFirehoseSqsRecordSchema . parse ( kinesisFireHoseSqsEvent . records [ 0 ] ) ;
253
291
292
+ // Assess
254
293
expect ( parsed . recordId ) . toEqual (
255
294
'49640912821178817833517986466168945147170627572855734274000000'
256
295
) ;
0 commit comments