mirror of
https://github.com/wekan/wekan.git
synced 2025-09-22 01:50:48 +02:00
158 lines
No EOL
3.5 KiB
JavaScript
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);
|
|
}
|
|
}); |