wekan/packages/kadira-flow-router/test/client/router.subs_ready.spec.js
Lauri Ojansivu 73e265d8fd Include to Wekan packages directory contents, so that meteor command would build all directly.
This also simplifies build scripts.

Thanks to xet7 !
2019-04-20 15:18:33 +03:00

225 lines
No EOL
6.5 KiB
JavaScript

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