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