From ca497d544097d384792805e2e47e600b777a5083 Mon Sep 17 00:00:00 2001 From: Emily Stark Date: Fri, 28 Jun 2013 16:58:40 -0700 Subject: [PATCH] Fix args to LocalCollection callback. Added tests for local collections with no connections, which is where this problem was manifesting itself. --- packages/minimongo/minimongo.js | 2 +- .../mongo-livedata/mongo_livedata_tests.js | 43 +++++++++++++------ 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/packages/minimongo/minimongo.js b/packages/minimongo/minimongo.js index e23e3be0e0..5e5abeb7f4 100644 --- a/packages/minimongo/minimongo.js +++ b/packages/minimongo/minimongo.js @@ -451,7 +451,7 @@ LocalCollection.prototype.insert = function (doc, callback) { LocalCollection._recomputeResults(self.queries[qid]); }); self._observeQueue.drain(); - if (callback) Meteor.defer(function () { callback(doc._id); }); + if (callback) Meteor.defer(function () { callback(null, doc._id); }); return doc._id; }; diff --git a/packages/mongo-livedata/mongo_livedata_tests.js b/packages/mongo-livedata/mongo_livedata_tests.js index f1aff8983f..da2ba287e1 100644 --- a/packages/mongo-livedata/mongo_livedata_tests.js +++ b/packages/mongo-livedata/mongo_livedata_tests.js @@ -1067,16 +1067,35 @@ if (Meteor.isServer) { ]); } -if (Meteor.isClient) { - Tinytest.addAsync("mongo-livedata - local collections with different connections", function (test, onComplete) { - var cname = Random.id(); - var coll1 = new Meteor.Collection(cname); - var doc = { foo: "bar" }; - var coll2 = new Meteor.Collection("foo", { connection: null }); - coll2.insert(doc, function (err, id) { - test.equal(coll1.find(doc).count(), 0); - test.equal(coll2.find(doc).count(), 1); - onComplete(); - }); +Tinytest.addAsync("mongo-livedata - local collections with different connections", function (test, onComplete) { + var cname = Random.id(); + var cname2 = Random.id(); + var coll1 = new Meteor.Collection(cname); + var doc = { foo: "bar" }; + var coll2 = new Meteor.Collection(cname2, { connection: null }); + coll2.insert(doc, function (err, id) { + test.equal(coll1.find(doc).count(), 0); + test.equal(coll2.find(doc).count(), 1); + onComplete(); }); -} +}); + +Tinytest.addAsync("mongo-livedata - local collection with null connection, w/ callback", function (test, onComplete) { + var cname = Random.id(); + var coll1 = new Meteor.Collection(cname, { connection: null }); + var doc = { foo: "bar" }; + var docId = coll1.insert(doc, function (err, id) { + test.equal(docId, id); + test.equal(coll1.findOne(doc)._id, id); + onComplete(); + }); +}); + +Tinytest.addAsync("mongo-livedata - local collection with null connection, w/o callback", function (test, onComplete) { + var cname = Random.id(); + var coll1 = new Meteor.Collection(cname, { connection: null }); + var doc = { foo: "bar" }; + var docId = coll1.insert(doc); + test.equal(coll1.findOne(doc)._id, docId); + onComplete(); +});