wekan/packages/kadira-flow-router/test/client/route.reactivity.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

158 lines
No EOL
3.5 KiB
JavaScript

Route = FlowRouter.Route;
Tinytest.addAsync('Client - Route - Reactivity - getParam', function (test, done) {
var r = new Route();
Tracker.autorun(function(c) {
var param = r.getParam("id");
if(param) {
test.equal(param, "hello");
c.stop();
Meteor.defer(done);
}
});
setTimeout(function() {
var context = {
params: {id: "hello"},
queryParams: {}
};
r.registerRouteChange(context);
}, 10);
});
Tinytest.addAsync('Client - Route - Reactivity - getParam on route close', function (test, done) {
var r = new Route();
var closeTriggered = false;
Tracker.autorun(function(c) {
var param = r.getParam("id");
if(closeTriggered) {
test.equal(param, undefined);
c.stop();
Meteor.defer(done);
}
});
setTimeout(function() {
closeTriggered = true;
r.registerRouteClose();
}, 10);
});
Tinytest.addAsync('Client - Route - Reactivity - getQueryParam', function (test, done) {
var r = new Route();
Tracker.autorun(function(c) {
var param = r.getQueryParam("id");
if(param) {
test.equal(param, "hello");
c.stop();
Meteor.defer(done);
}
});
setTimeout(function() {
var context = {
params: {},
queryParams: {id: "hello"}
};
r.registerRouteChange(context);
}, 10);
});
Tinytest.addAsync('Client - Route - Reactivity - getQueryParam on route close', function (test, done) {
var r = new Route();
var closeTriggered = false;
Tracker.autorun(function(c) {
var param = r.getQueryParam("id");
if(closeTriggered) {
test.equal(param, undefined);
c.stop();
Meteor.defer(done);
}
});
setTimeout(function() {
closeTriggered = true;
r.registerRouteClose();
}, 10);
});
Tinytest.addAsync('Client - Route - Reactivity - getRouteName rerun when route closed', function (test, done) {
var r = new Route();
r.name = "my-route";
var closeTriggered = false;
Tracker.autorun(function(c) {
var name = r.getRouteName();
test.equal(name, r.name);
if(closeTriggered) {
c.stop();
Meteor.defer(done);
}
});
setTimeout(function() {
closeTriggered = true;
r.registerRouteClose();
}, 10);
});
Tinytest.addAsync('Client - Route - Reactivity - watchPathChange when routeChange', function (test, done) {
var r = new Route();
var pathChangeCounts = 0;
var c = Tracker.autorun(function() {
r.watchPathChange();
pathChangeCounts++;
});
var context = {
params: {},
queryParams: {}
};
setTimeout(function() {
r.registerRouteChange(context);
setTimeout(checkAfterNormalRouteChange, 50);
}, 10);
function checkAfterNormalRouteChange() {
test.equal(pathChangeCounts, 2);
var lastRouteChange = true;
r.registerRouteChange(context, lastRouteChange);
setTimeout(checkAfterLastRouteChange, 10);
}
function checkAfterLastRouteChange() {
test.equal(pathChangeCounts, 2);
c.stop();
Meteor.defer(done);
}
});
Tinytest.addAsync('Client - Route - Reactivity - watchPathChange when routeClose', function (test, done) {
var r = new Route();
var pathChangeCounts = 0;
var c = Tracker.autorun(function() {
r.watchPathChange();
pathChangeCounts++;
});
var context = {
params: {},
queryParams: {}
};
setTimeout(function() {
r.registerRouteClose();
setTimeout(checkAfterRouteClose, 10);
}, 10);
function checkAfterRouteClose() {
test.equal(pathChangeCounts, 2);
c.stop();
Meteor.defer(done);
}
});