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