diff --git a/.github/workflows/ci.common.yml b/.github/workflows/ci.common.yml index c55909b3..5640be2d 100644 --- a/.github/workflows/ci.common.yml +++ b/.github/workflows/ci.common.yml @@ -23,11 +23,6 @@ jobs: - name: Install run: npm install --ignore-scripts - # We need to trigger the rebuild of @confluentinc/kafka-javascript to run scrips - - name: Run @confluentic/kafka-javascript scripts - if: ${{ inputs.package_name == '@message-queue-toolkit/kafka' }} - run: npm rebuild @confluentinc/kafka-javascript - - name: Build TS run: npm run build -- --filter=${{ inputs.package_name }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c607926b..5714677a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,7 +30,7 @@ jobs: kafka: strategy: matrix: - node-version: [22.x] + node-version: [22.x, 24.x] uses: kibertoad/message-queue-toolkit/.github/workflows/ci.common.yml@main with: package_name: '@message-queue-toolkit/kafka' diff --git a/packages/kafka/lib/test-confluentic.spec.ts b/packages/kafka/lib/test-confluentic.spec.ts deleted file mode 100644 index 4b70dac7..00000000 --- a/packages/kafka/lib/test-confluentic.spec.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { randomUUID } from 'node:crypto' -import { KafkaJS } from '@confluentinc/kafka-javascript' -import { waitAndRetry } from '@lokalise/universal-ts-utils/node' -import {} from '@platformatic/kafka' -import { type TestContext, createTestContext } from '../test/utils/testContext.ts' - -describe('Test confluentic-kafka', () => { - let testContext: TestContext - - beforeAll(async () => { - testContext = await createTestContext() - }) - - afterAll(async () => { - await testContext.dispose() - }) - - it('should send and receive a message', async () => { - // Given - const clientId = randomUUID() - const groupId = randomUUID() - // Use a fresh, unique topic per run to avoid stale state - const topic = `test-topic-${Date.now()}` - const messageValue = 'My test message' - - const kafka = new KafkaJS.Kafka({ - 'client.id': clientId, - 'bootstrap.servers': testContext.cradle.kafkaConfig.bootstrapBrokers.join(','), - }) - - // Topics can be created from producers, but as we will first connect a consumer, we need to create the topic first - const admin = kafka.admin() - await admin.connect() - await admin.createTopics({ - topics: [{ topic }], - }) - - const messages: string[] = [] - - const consumer = kafka.consumer({ 'group.id': groupId }) - await consumer.connect() - await consumer.subscribe({ topic }) - - await consumer.run({ - eachMessage: ({ message }) => { - const messageString = message.value?.toString() - if (messageString) messages.push(messageString) - return Promise.resolve() - }, - }) - // Wait for the consumer to be assigned partitions - await waitAndRetry(() => consumer.assignment().length > 0, 100, 10) - - // When - const producer = kafka.producer() - await producer.connect() - await producer.send({ - topic, - messages: [{ value: messageValue }], - }) - - // Then - await waitAndRetry(() => messages.length > 0) - - // Cleaning up before checks to avoid stale state - await consumer.disconnect() - await producer.disconnect() - await admin.disconnect() - - expect(messages).toHaveLength(1) - expect(messages[0]).toEqual(messageValue) - }) -}) diff --git a/packages/kafka/package.json b/packages/kafka/package.json index 8e94ecc7..c3ef803f 100644 --- a/packages/kafka/package.json +++ b/packages/kafka/package.json @@ -1,6 +1,6 @@ { "name": "@message-queue-toolkit/kafka", - "version": "0.5.0", + "version": "0.5.1", "engines": { "node": ">= 22.14.0" }, @@ -47,7 +47,6 @@ "prepublishOnly": "npm run lint && npm run build" }, "dependencies": { - "@confluentinc/kafka-javascript": "^1.3.0", "@lokalise/node-core": "^14.2.0", "@lokalise/universal-ts-utils": "^4.5.1", "@platformatic/kafka": "^1.9.0"