Fix args to LocalCollection callback.

Added tests for local collections with no connections, which is where this
problem was manifesting itself.
This commit is contained in:
Emily Stark
2013-06-28 16:58:40 -07:00
parent 40f1b52c2c
commit ca497d5440
2 changed files with 32 additions and 13 deletions

View File

@@ -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;
};

View File

@@ -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();
});