UNPKG

@addapptables/microservice

Version:
65 lines (56 loc) 2.15 kB
import { before } from 'mocha'; import * as chai from 'chai'; import * as sinon from 'sinon'; import { KafkaBusAdapter } from '../../src/bus-adapters/kafka-bus.adapter'; import { IBusAdapter } from '../../src/interfaces/bus/bus-adapter.interface'; import * as loadPackage from '../../src/utils/load-package.util'; import { Kafka } from './mocks/kafkajs.mock'; import { CraftsLoggerMock } from '../mocks/crafts-logger.mock'; describe('kafka bus adapter', function () { let sandbox; const testData = { action: 'test-action', context: 'test-context', data: { id: '' }, }; let kafkaAdapter: IBusAdapter; describe('Subscribe', () => { before(async () => { sandbox = sinon.createSandbox(); sandbox.stub(loadPackage, 'loadPackage').returns({ Kafka }); const adapter = new KafkaBusAdapter(new CraftsLoggerMock({})); await adapter.onInit(); kafkaAdapter = adapter; }) after(async () => { await kafkaAdapter.close(); sandbox.restore(); }) it('Should be equal to test-context', () => { return new Promise(async (resolve, reject) => { await kafkaAdapter.subscribe(async (result) => { try { chai.expect(result.context).to.be.equal(testData.context); resolve(undefined); } catch (error) { reject(error); } }, testData); await kafkaAdapter.publish(testData); }) }) it('Should throw a exception', () => { return new Promise(async (resolve) => { await kafkaAdapter.subscribe(async () => { try { throw 'Exception'; } catch (error) { chai.expect(error).to.be.equal('Exception'); resolve(error); } }, testData); await kafkaAdapter.publish(testData); }) }) }) });