diff --git a/mongodb-queue.ts b/mongodb-queue.ts index d61e8dd..82a1e44 100644 --- a/mongodb-queue.ts +++ b/mongodb-queue.ts @@ -118,7 +118,7 @@ export default class Queue { }); } - const results = await this.col.insertMany(msgs); + const results = await this.col.insertMany(msgs, {ignoreUndefined: true}); if (payload instanceof Array) return '' + results.insertedIds; return '' + results.insertedIds[0]; } diff --git a/package.json b/package.json index 15a8ba3..5d1549d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@reedsy/mongodb-queue", - "version": "5.1.0", + "version": "6.0.0", "description": "Message queues which uses MongoDB.", "main": "mongodb-queue.js", "scripts": { diff --git a/test/default.js b/test/default.js index 9af5281..03e0370 100644 --- a/test/default.js +++ b/test/default.js @@ -56,6 +56,17 @@ setup().then(({client, db}) => { t.end(); }); + test('remove undefined properties', async function(t) { + const queue = new MongoDbQueue(db, 'default'); + const id = await queue.add({text: 'Hello, World!', undefinedProp: undefined}); + t.ok(id, 'Received an id for this message'); + + const msg = await queue.get(); + t.ok(msg.id, 'Got a msg.id'); + t.equal('undefinedProp' in msg.payload, false, 'Payload has undefinedProp and it should be removed'); + t.end(); + }); + test('client.close()', function(t) { t.pass('client.close()'); client.close();