1+ import { randomUUID } from 'node:crypto'
12import { once } from 'node:events'
23import { waitAndRetry } from '@lokalise/universal-ts-utils/node'
3- import { KafkaConsumer , type Message , Producer , features , librdkafkaVersion } from 'node-rdkafka'
4+ import { KafkaConsumer , type Message , Producer } from 'node-rdkafka'
45
56// TODO: to be removed once we have proper tests
67describe ( 'Test' , ( ) => {
7- it ( 'should use node-rdkafka' , ( ) => {
8- expect ( features ) . toBeDefined ( )
9- expect ( librdkafkaVersion ) . toBeDefined ( )
10- } )
11-
12- it ( 'should send and receive a message' , { timeout : 10000 } , async ( ) => {
8+ it ( 'should send and receive a message' , async ( ) => {
139 // Given
1410 const brokers = 'localhost:9092'
1511 // Use a fresh, unique topic per run to avoid stale state
@@ -26,13 +22,11 @@ describe('Test', () => {
2622 producer . connect ( )
2723 await once ( producer , 'ready' )
2824
29- // Create a consumer with a unique group and disable auto-commit for fresh offsets
3025 const consumer = new KafkaConsumer (
3126 {
32- 'group.id' : 'test-group' ,
27+ 'group.id' : randomUUID ( ) ,
3328 'metadata.broker.list' : brokers ,
3429 'allow.auto.create.topics' : true ,
35- 'enable.auto.commit' : false ,
3630 } ,
3731 { 'auto.offset.reset' : 'earliest' } ,
3832 )
@@ -56,7 +50,7 @@ describe('Test', () => {
5650 producer . flush ( )
5751
5852 // Then
59- await waitAndRetry ( ( ) => receivedMessages . length > 0 , 10 , 800 )
53+ await waitAndRetry ( ( ) => receivedMessages . length > 0 , 10 , 1000 )
6054 expect ( receivedMessages ) . toHaveLength ( 1 )
6155 expect ( receivedMessages [ 0 ] ?. value ?. toString ( ) ) . toBe ( messageValue )
6256
0 commit comments