| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 | Tinytest.addAsync('Client - Router - subsReady - with no args - all subscriptions ready', function (test, next) {  var rand = Random.id();  FlowRouter.route('/' + rand, {    subscriptions: function(params) {      this.register('bar', Meteor.subscribe('bar'));      this.register('foo', Meteor.subscribe('foo'));    }  });  FlowRouter.subscriptions = function () {    this.register('baz', Meteor.subscribe('baz'));  };  FlowRouter.go('/' + rand);  Tracker.autorun(function(c) {    if(FlowRouter.subsReady()) {      FlowRouter.subscriptions = Function.prototype;      next();      c.stop();    }  });});Tinytest.addAsync('Client - Router - subsReady - with no args - all subscriptions does not ready', function (test, next) {  var rand = Random.id();  FlowRouter.route('/' + rand, {    subscriptions: function(params) {      this.register('fooNotReady', Meteor.subscribe('fooNotReady'));    }  });  FlowRouter.subscriptions = function () {    this.register('bazNotReady', Meteor.subscribe('bazNotReady'));  };  FlowRouter.go('/' + rand);  setTimeout(function() {    test.isTrue(!FlowRouter.subsReady());    FlowRouter.subscriptions = Function.prototype;    next();  }, 100);});Tinytest.addAsync('Client - Router - subsReady - with no args - global subscriptions does not ready', function (test, next) {  var rand = Random.id();  FlowRouter.route('/' + rand, {    subscriptions: function(params) {      this.register('bar', Meteor.subscribe('bar'));      this.register('foo', Meteor.subscribe('foo'));    }  });  FlowRouter.subscriptions = function () {    this.register('bazNotReady', Meteor.subscribe('bazNotReady'));  };  FlowRouter.go('/' + rand);  setTimeout(function() {    test.isTrue(!FlowRouter.subsReady());    FlowRouter.subscriptions = Function.prototype;    next();  }, 100);});Tinytest.addAsync('Client - Router - subsReady - with no args - current subscriptions does not ready', function (test, next) {  var rand = Random.id();  FlowRouter.route('/' + rand, {    subscriptions: function(params) {      this.register('bar', Meteor.subscribe('bar'));      this.register('fooNotReady', Meteor.subscribe('fooNotReady'));    }  });  FlowRouter.subscriptions = function () {    this.register('baz', Meteor.subscribe('baz'));  };  FlowRouter.go('/' + rand);  setTimeout(function() {    test.isTrue(!FlowRouter.subsReady());    FlowRouter.subscriptions = Function.prototype;    next();  }, 100);});Tinytest.addAsync('Client - Router - subsReady - with args - all subscriptions ready', function (test, next) {  var rand = Random.id();  FlowRouter.route('/' + rand, {    subscriptions: function(params) {      this.register('bar', Meteor.subscribe('bar'));      this.register('foo', Meteor.subscribe('foo'));    }  });  FlowRouter.subscriptions = function () {    this.register('baz', Meteor.subscribe('baz'));  };  FlowRouter.go('/' + rand);  Tracker.autorun(function(c) {    if(FlowRouter.subsReady('foo', 'baz')) {      FlowRouter.subscriptions = Function.prototype;      next();      c.stop();    }  });});Tinytest.addAsync('Client - Router - subsReady - with args - all subscriptions does not ready', function (test, next) {  var rand = Random.id();  FlowRouter.route('/' + rand, {    subscriptions: function(params) {      this.register('fooNotReady', Meteor.subscribe('fooNotReady'));    }  });  FlowRouter.subscriptions = function () {    this.register('bazNotReady', Meteor.subscribe('bazNotReady'));  };  FlowRouter.go('/' + rand);  setTimeout(function() {    test.isTrue(!FlowRouter.subsReady('fooNotReady', 'bazNotReady'));    FlowRouter.subscriptions = Function.prototype;    next();  }, 100);});Tinytest.addAsync('Client - Router - subsReady - with args - global subscriptions does not ready', function (test, next) {  var rand = Random.id();  FlowRouter.route('/' + rand, {    subscriptions: function(params) {      this.register('bar', Meteor.subscribe('bar'));      this.register('foo', Meteor.subscribe('foo'));    }  });  FlowRouter.subscriptions = function () {    this.register('bazNotReady', Meteor.subscribe('bazNotReady'));  };  FlowRouter.go('/' + rand);  setTimeout(function() {    test.isTrue(!FlowRouter.subsReady('foo', 'bazNotReady'));    FlowRouter.subscriptions = Function.prototype;    next();  }, 100);});Tinytest.addAsync('Client - Router - subsReady - with args - current subscriptions does not ready', function (test, next) {  var rand = Random.id();  FlowRouter.route('/' + rand, {    subscriptions: function(params) {      this.register('bar', Meteor.subscribe('bar'));      this.register('fooNotReady', Meteor.subscribe('fooNotReady'));    }  });  FlowRouter.subscriptions = function () {    this.register('baz', Meteor.subscribe('baz'));  };  FlowRouter.go('/' + rand);  setTimeout(function() {    test.isTrue(!FlowRouter.subsReady('fooNotReady', 'baz'));    FlowRouter.subscriptions = Function.prototype;    next();  }, 100);});Tinytest.addAsync('Client - Router - subsReady - with args - subscribe with wrong name', function (test, next) {  var rand = Random.id();  FlowRouter.route('/' + rand, {    subscriptions: function(params) {      this.register('bar', Meteor.subscribe('bar'));    }  });  FlowRouter.subscriptions = function () {    this.register('baz', Meteor.subscribe('baz'));  };  FlowRouter.go('/' + rand);  setTimeout(function() {    test.isTrue(!FlowRouter.subsReady('baz', 'xxx', 'baz'));    FlowRouter.subscriptions = Function.prototype;    next();  }, 100);});Tinytest.addAsync('Client - Router - subsReady - with args - same route two different subs', function (test, next) {  var rand = Random.id();  var count = 0;  FlowRouter.route('/' + rand, {    subscriptions: function(params) {      if(++count == 1) {        this.register('not-exisitng', Meteor.subscribe('not-exisitng'));      }    }  });  FlowRouter.subscriptions = Function.prototype;  FlowRouter.go('/' + rand);  setTimeout(function() {    test.isFalse(FlowRouter.subsReady());    FlowRouter.go('/' + rand, {}, {param: "111"});    setTimeout(function() {      test.isTrue(FlowRouter.subsReady());      next();    }, 100)  }, 100);});Tinytest.addAsync('Client - Router - subsReady - no subscriptions - simple', function (test, next) {  var rand = Random.id();  FlowRouter.route('/' + rand, {});  FlowRouter.subscriptions = Function.prototype;  FlowRouter.go('/' + rand);  setTimeout(function() {    test.isTrue(FlowRouter.subsReady());    next();  }, 100);});
 |