From 6a30ebf0fc1f20ae94ee684a780b07e609b021fc Mon Sep 17 00:00:00 2001 From: Tomer Levy Date: Sat, 9 Dec 2023 10:33:11 +0200 Subject: [PATCH] chore: improve-cov --- tests/kafkaMessageBus.test.ts | 25 ++++++++++++++++++++++++- tests/middlewares/invalidMiddleware.ts | 9 +++++++++ tests/{ => middlewares}/middleware.ts | 2 +- tests/providers/inMemory.test.ts | 2 +- tests/providers/kafka.test.ts | 2 +- 5 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 tests/middlewares/invalidMiddleware.ts rename tests/{ => middlewares}/middleware.ts (81%) diff --git a/tests/kafkaMessageBus.test.ts b/tests/kafkaMessageBus.test.ts index 639cfc5..cdf4910 100644 --- a/tests/kafkaMessageBus.test.ts +++ b/tests/kafkaMessageBus.test.ts @@ -1,7 +1,8 @@ import { KafkaMessageBus } from "../src/kafkaMessageBus"; import InMemoryProvider from '../src/providers/inMemory'; -import { KafkaConfig } from '../src/interfaces'; +import { KafkaConfig, KafkaProducerMessage } from '../src/interfaces'; import { Provider, Providers} from "../src/types"; +import invalidMiddleware from './middlewares/invalidMiddleware'; describe('KafkaMessageBus', () => { let config1: KafkaConfig; @@ -44,11 +45,33 @@ describe('KafkaMessageBus', () => { expect(() => new KafkaMessageBus({ config: config1 })).toThrow('provider: unsupported is not supported'); }); + it('should throw an error when listening to unsupported event', () => { + const bus = new KafkaMessageBus({ config: config2 }); + expect(() => bus.on('unsupported' as any, jest.fn())).toThrow('Invalid event type unsupported'); + }); + + it('should throw an error when listening with non functional callback', () => { + const bus = new KafkaMessageBus({ config: config2 }); + expect(() => bus.on('log', {})).toThrow('callback argument must be of type function'); + }); + it('should create an instance of KafkaMessageBus with inMemory provider', () => { const bus = new KafkaMessageBus({ config: config2 }); expect(bus).toBeInstanceOf(KafkaMessageBus); }); + it('should failed to send message due to invalid middleware', async () => { + const bus = new KafkaMessageBus({ config: config2, middlewares: [invalidMiddleware] }); + const topic = 'undefinedTopic'; + const message: KafkaProducerMessage = { + key: "testKey", + messageType: "testType", + value: { content: "testContent" } + }; + + await expect(bus.send({ topic, message })).rejects.toThrow('next() called multiple times'); + }); + it('should use InMemoryProvider for specific tests', () => { new InMemoryProvider({ config: config2 }); }); diff --git a/tests/middlewares/invalidMiddleware.ts b/tests/middlewares/invalidMiddleware.ts new file mode 100644 index 0000000..ac1a475 --- /dev/null +++ b/tests/middlewares/invalidMiddleware.ts @@ -0,0 +1,9 @@ +import { EachMessagePayload } from 'kafkajs'; +import { Middleware } from '../../src'; + +const middleware: Middleware = async (_eachMessage, next) => { + await next(); + await next() +}; + +export default middleware \ No newline at end of file diff --git a/tests/middleware.ts b/tests/middlewares/middleware.ts similarity index 81% rename from tests/middleware.ts rename to tests/middlewares/middleware.ts index 5d44642..255d69b 100644 --- a/tests/middleware.ts +++ b/tests/middlewares/middleware.ts @@ -1,5 +1,5 @@ import { EachMessagePayload } from 'kafkajs'; -import { Middleware } from '../src'; +import { Middleware } from '../../src'; const middleware: Middleware = async (_eachMessage, next) => { await next() diff --git a/tests/providers/inMemory.test.ts b/tests/providers/inMemory.test.ts index e0fbe10..e4bc7d1 100644 --- a/tests/providers/inMemory.test.ts +++ b/tests/providers/inMemory.test.ts @@ -2,7 +2,7 @@ import { KafkaMessageBus } from "../../src/kafkaMessageBus"; import { ConsumerDefinition, KafkaProducerMessage, KafkaConfig } from '../../src/interfaces' import { Providers } from "../../src/types"; import { v4 as uuidv4 } from 'uuid'; -import middleware from '../middleware'; +import middleware from '../middlewares/middleware'; describe('KafkaMessageBus with InMemoryProvider', () => { let kafkaMessageBus: KafkaMessageBus; diff --git a/tests/providers/kafka.test.ts b/tests/providers/kafka.test.ts index 39c5f20..186e892 100644 --- a/tests/providers/kafka.test.ts +++ b/tests/providers/kafka.test.ts @@ -2,7 +2,7 @@ import { KafkaMessageBus } from "../../src/kafkaMessageBus"; import { ConsumerDefinition, KafkaProducerMessage, KafkaConfig } from '../../src/interfaces'; import { Providers } from "../../src/types"; import { v4 as uuidv4 } from 'uuid'; -import middleware from '../middleware'; +import middleware from '../middlewares/middleware'; describe('KafkaMessageBus with KafkaProvider', () => { let kafkaMessageBus: KafkaMessageBus;