quintoandar-kafka
Advanced tools
Comparing version 0.1.0 to 0.2.0
{ | ||
"name": "quintoandar-kafka", | ||
"version": "0.1.0", | ||
"version": "0.2.0", | ||
"description": "Default Kafka NodeJS lib for QuintoAndar", | ||
@@ -8,5 +8,5 @@ "main": "src/main.js", | ||
"dependencies": { | ||
"kafka-node": "2.6.1", | ||
"kafka-node": "^3.0.1", | ||
"lodash": "^4.17.10", | ||
"quintoandar-logger": "git+https://github.com/quintoandar/node-logger.git#1.0.0", | ||
"quintoandar-logger": "git+https://github.com/quintoandar/node-logger.git#2.0.0", | ||
"uuid": "^3.2.1" | ||
@@ -13,0 +13,0 @@ }, |
@@ -40,3 +40,8 @@ const kafka = require('kafka-node'); | ||
const sendPromisse = new Promise((resolve, reject) => { | ||
const payload = { topic, messages: [msg] }; | ||
let payload; | ||
if (Array.isArray(msg)) { | ||
payload = { topic, messages: msg }; | ||
} else { | ||
payload = { topic, messages: [msg] }; | ||
} | ||
this.readyPromisse.then(() => { | ||
@@ -47,3 +52,2 @@ this.producer.send([payload], (err, data) => { | ||
} else { | ||
data.message = msg; | ||
resolve(data); | ||
@@ -50,0 +54,0 @@ } |
@@ -5,3 +5,2 @@ jest.mock('node-rdkafka'); | ||
const msg = 'test'; | ||
const topic = 'TestTopic'; | ||
@@ -34,39 +33,73 @@ | ||
it('should produce when ready', (done) => { | ||
const producer = new KafkaProducer({ configs }); | ||
producer.send(topic, msg).then(() => { | ||
expect(producer.producer.send.mock.calls[0][0]).toEqual([{ | ||
topic, | ||
messages: [msg], | ||
message: msg | ||
}]); | ||
done(); | ||
}); | ||
producer.producer.emit('ready'); | ||
}); | ||
describe('send', () => { | ||
const msg = 'test'; | ||
const batchMsgs = ['test1', 'test2']; | ||
it('should produce when ready', (done) => { | ||
const producer = new KafkaProducer({ configs }); | ||
producer.producer.emit('ready'); | ||
producer.send(topic, msg).then(() => { | ||
expect(producer.producer.send.mock.calls[0][0]).toEqual([{ | ||
topic, | ||
messages: [msg], | ||
message: msg | ||
}]); | ||
done(); | ||
it('should produce when ready', (done) => { | ||
const producer = new KafkaProducer({ configs }); | ||
producer.send(topic, msg).then(() => { | ||
expect(producer.producer.send.mock.calls[0][0]).toEqual([{ | ||
topic, | ||
messages: [msg], | ||
}]); | ||
done(); | ||
}); | ||
producer.producer.emit('ready'); | ||
}); | ||
}); | ||
it('should reject promise on error', (done) => { | ||
const producer = new KafkaProducer({ configs }); | ||
producer.producer.emit('ready'); | ||
producer.producer.send = jest.fn().mockImplementation((payload, cb) => { | ||
cb(new Error('some error')); | ||
it('should produce when ready', (done) => { | ||
const producer = new KafkaProducer({ configs }); | ||
producer.producer.emit('ready'); | ||
producer.send(topic, msg).then(() => { | ||
expect(producer.producer.send.mock.calls[0][0]).toEqual([{ | ||
topic, | ||
messages: [msg], | ||
}]); | ||
done(); | ||
}); | ||
}); | ||
producer.send(topic, msg).catch((err) => { | ||
expect(err).toEqual(new Error('some error')); | ||
done(); | ||
it('should reject promise on error', (done) => { | ||
const producer = new KafkaProducer({ configs }); | ||
producer.producer.emit('ready'); | ||
producer.producer.send = jest.fn().mockImplementation((payload, cb) => { | ||
cb(new Error('some error')); | ||
}); | ||
producer.send(topic, msg).catch((err) => { | ||
expect(err).toEqual(new Error('some error')); | ||
done(); | ||
}); | ||
}); | ||
it('with array of messages, should produce when ready', (done) => { | ||
const producer = new KafkaProducer({ configs }); | ||
producer.send(topic, batchMsgs).then(() => { | ||
expect(producer.producer.send.mock.calls[0][0]).toEqual([{ | ||
topic, | ||
messages: batchMsgs, | ||
}]); | ||
done(); | ||
}); | ||
producer.producer.emit('ready'); | ||
}); | ||
it('with array of messages, should produce when ready', (done) => { | ||
const producer = new KafkaProducer({ configs }); | ||
producer.producer.emit('ready'); | ||
producer.send(topic, batchMsgs).then(() => { | ||
expect(producer.producer.send.mock.calls[0][0]).toEqual([{ | ||
topic, | ||
messages: batchMsgs, | ||
}]); | ||
done(); | ||
}); | ||
}); | ||
it('with array of messages, should reject promise on error', (done) => { | ||
const producer = new KafkaProducer({ configs }); | ||
producer.producer.emit('ready'); | ||
producer.producer.send = jest.fn().mockImplementation((payload, cb) => { | ||
cb(new Error('some error')); | ||
}); | ||
producer.send(topic, batchMsgs).catch((err) => { | ||
expect(err).toEqual(new Error('some error')); | ||
done(); | ||
}); | ||
}); | ||
}); | ||
}); |
Git dependency
Supply chain riskContains a dependency which resolves to a remote git URL. Dependencies fetched from git URLs are not immutable and can be used to inject untrusted code or reduce the likelihood of a reproducible install.
Found 1 instance in 1 package
Git dependency
Supply chain riskContains a dependency which resolves to a remote git URL. Dependencies fetched from git URLs are not immutable and can be used to inject untrusted code or reduce the likelihood of a reproducible install.
Found 1 instance in 1 package
18959
509
+ Addeddenque@1.5.1(transitive)
+ Addedkafka-node@3.0.1(transitive)
- Removedkafka-node@2.6.1(transitive)
Updatedkafka-node@^3.0.1
Updatedquintoandar-logger@git+https://github.com/quintoandar/node-logger.git#2.0.0