@@ -231,6 +231,42 @@ const kinesisDataStreamEvent = {
231231 ]
232232}
233233
234+ // Sample event from https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html
235+ const selfManagedKafkaEvent = {
236+ eventSource : 'SelfManagedKafka' ,
237+ bootstrapServers : 'b-2.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092,b-1.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092' ,
238+ records : {
239+ 'mytopic-0' : [
240+ {
241+ topic : 'mytopic' ,
242+ partition : 0 ,
243+ offset : 15 ,
244+ timestamp : 1545084650987 ,
245+ timestampType : 'CREATE_TIME' ,
246+ key : 'abcDEFghiJKLmnoPQRstuVWXyz1234==' ,
247+ value : 'SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==' ,
248+ headers : [
249+ {
250+ headerKey : [
251+ 104 ,
252+ 101 ,
253+ 97 ,
254+ 100 ,
255+ 101 ,
256+ 114 ,
257+ 86 ,
258+ 97 ,
259+ 108 ,
260+ 117 ,
261+ 101
262+ ]
263+ }
264+ ]
265+ }
266+ ]
267+ }
268+ }
269+
234270describe ( 'getEventSourceNameBasedOnEvent' , ( ) => {
235271 test ( 'throws error on empty event' , ( ) => {
236272 expect ( ( ) => getEventSourceNameBasedOnEvent ( { event : { } } ) ) . toThrow (
@@ -263,6 +299,11 @@ describe('getEventSourceNameBasedOnEvent', () => {
263299 expect ( result ) . toEqual ( 'AWS_KINESIS_DATA_STREAM' )
264300 } )
265301
302+ test ( 'recognises self managed kafka event' , ( ) => {
303+ const result = getEventSourceNameBasedOnEvent ( { event : selfManagedKafkaEvent } )
304+ expect ( result ) . toEqual ( 'AWS_SELF_MANAGED_KAFKA' )
305+ } )
306+
266307 test ( 'recognizes eventbridge event' , ( ) => {
267308 const result = getEventSourceNameBasedOnEvent ( { event : eventbridgeEvent } )
268309 expect ( result ) . toEqual ( 'AWS_EVENTBRIDGE' )
@@ -287,5 +328,6 @@ module.exports = {
287328 eventbridgeEvent,
288329 eventbridgeScheduledEvent,
289330 eventbridgeCustomerEvent,
290- kinesisDataStreamEvent
331+ kinesisDataStreamEvent,
332+ selfManagedKafkaEvent
291333}
0 commit comments