diff --git a/History.md b/History.md index e3d3c8b7bd..0e4532db0f 100644 --- a/History.md +++ b/History.md @@ -9,10 +9,18 @@ * Parse `application/javascript` and `application/x-javascript` HTTP replies as JSON too. #4595 + ### Meteor Accounts * `loginWithPassword` now matches username or email in a case insensitive manner. If there are multiple users with a username or email only differing in case, a case sensitive match is required. #550 + +### DDP + +* `sub.ready()` should return true inside that subscription's `onReady` + callback. #4614 + + ## in progress: v.1.1.1 ### Blaze diff --git a/packages/ddp-client/livedata_connection.js b/packages/ddp-client/livedata_connection.js index 92aa588db2..3059ff7d56 100644 --- a/packages/ddp-client/livedata_connection.js +++ b/packages/ddp-client/livedata_connection.js @@ -1382,8 +1382,8 @@ _.extend(Connection.prototype, { // Did we already receive a ready message? (Oops!) if (subRecord.ready) return; - subRecord.readyCallback && subRecord.readyCallback(); subRecord.ready = true; + subRecord.readyCallback && subRecord.readyCallback(); subRecord.readyDeps.changed(); }); }); diff --git a/packages/ddp-client/livedata_tests.js b/packages/ddp-client/livedata_tests.js index 0d0cd1bbb4..2d44060658 100644 --- a/packages/ddp-client/livedata_tests.js +++ b/packages/ddp-client/livedata_tests.js @@ -715,8 +715,9 @@ if (Meteor.isClient) { testAsyncMulti("livedata - publish multiple cursors", [ function (test, expect) { - Meteor.subscribe("multiPublish", {normal: 1}, { + var sub = Meteor.subscribe("multiPublish", {normal: 1}, { onReady: expect(function () { + test.isTrue(sub.ready()); test.equal(One.find().count(), 2); test.equal(Two.find().count(), 3); }),