From 670bc71bd2499403389b5cd7602be9658b74be6c Mon Sep 17 00:00:00 2001 From: Volodymyr Synytskyi Date: Fri, 11 Dec 2015 15:36:58 +0200 Subject: [PATCH] Add tests for bulk.toString and bulk.find.replaceOne --- test/test-bulk-replace-one.js | 31 +++++++++++++++++++++++++++++++ test/test-to-string-bulk.js | 30 ++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 test/test-bulk-replace-one.js create mode 100644 test/test-to-string-bulk.js diff --git a/test/test-bulk-replace-one.js b/test/test-bulk-replace-one.js new file mode 100644 index 0000000..c8aad96 --- /dev/null +++ b/test/test-bulk-replace-one.js @@ -0,0 +1,31 @@ +var insert = require('./insert') + +insert('bulk', [{ + name: 'Squirtle', type: 'water' +}, { + name: 'Starmie', type: 'water' +}], function (db, t, done) { + db.runCommand('serverStatus', function (err, resp) { + t.error(err) + if (parseFloat(resp.version) < 2.6) return t.end() + + var bulk = db.a.initializeUnorderedBulkOp() + bulk.find({ name: 'Squirtle' }).replaceOne({ name: 'Charmander', type: 'fire' }) + bulk.find({ name: 'Starmie' }).replaceOne({ type: 'fire' }) + + bulk.execute(function (err, res) { + t.error(err) + t.ok(res.ok) + db.a.find(function (err, res) { + t.error(err) + t.equal(res[0].name, 'Charmander') + t.equal(res[1].name, undefined) + + t.equal(res[0].type, 'fire') + t.equal(res[1].type, 'fire') + + t.end() + }) + }) + }) +}) diff --git a/test/test-to-string-bulk.js b/test/test-to-string-bulk.js new file mode 100644 index 0000000..53c6be5 --- /dev/null +++ b/test/test-to-string-bulk.js @@ -0,0 +1,30 @@ +var insert = require('./insert') + +insert('bulk to json', [{ + name: 'Squirtle', type: 'water' +}, { + name: 'Starmie', type: 'water' +}, { + name: 'Lapras', type: 'water' +}, { + name: 'Charmander', type: 'fire' +}], function (db, t, done) { + db.runCommand('serverStatus', function (err, resp) { + t.error(err) + if (parseFloat(resp.version) < 2.6) return t.end() + + var bulk = db.a.initializeOrderedBulkOp() + bulk.insert({ item: 'abc123', status: 'A', defaultQty: 500, points: 5 }) + bulk.insert({ item: 'ijk123', status: 'A', defaultQty: 100, points: 10 }) + bulk.find({ item: null }).update({ $set: { item: 'TBD' } }) + bulk.find({ status: 'D' }).removeOne() + + var result = bulk.toString() + t.equals(result.nInsertOps, 2, 'Should result in nInsertOps field set to 2') + t.equals(result.nUpdateOps, 1, 'Should result in nUpdateOps field set to 1') + t.equals(result.nRemoveOps, 1, 'Should result in nRemoveOps field set to 1') + t.equals(result.nBatches, 3, 'Should result in nBatches field set to 3') + + done() + }) +})