| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 | 
							- Tinytest.addAsync(
 
- 'Client - Router - Reactivity - detectChange only once', 
 
- function (test, done) {
 
-   var route = "/" + Random.id();
 
-   var name = Random.id();
 
-   FlowRouter.route(route, {name: name});
 
-   
 
-   var ranCount = 0;
 
-   var pickedId = null;
 
-   var c = Tracker.autorun(function() {
 
-     ranCount++;
 
-     pickedId = FlowRouter.getQueryParam("id");
 
-     if(pickedId) {
 
-       test.equal(pickedId, "hello");
 
-       test.equal(ranCount, 2);
 
-       c.stop();
 
-       Meteor.defer(done);
 
-     }
 
-   });
 
-   setTimeout(function() {
 
-     FlowRouter.go(name, {}, {id: "hello"});
 
-   }, 2);
 
- });
 
- Tinytest.addAsync(
 
- 'Client - Router - Reactivity - detectChange in the action', 
 
- function (test, done) {
 
-   var route = "/" + Random.id();
 
-   var name = Random.id();
 
-   FlowRouter.route(route, {
 
-     name: name,
 
-     action: function() {
 
-       var id = FlowRouter.getQueryParam("id");
 
-       test.equal(id, "hello");
 
-       Meteor.defer(done);
 
-     }
 
-   });
 
-   setTimeout(function() {
 
-     FlowRouter.go(name, {}, {id: "hello"});
 
-   }, 2);
 
- });
 
- Tinytest.addAsync(
 
- 'Client - Router - Reactivity - detect prev routeChange after new action', 
 
- function (test, done) {
 
-   var route1 = "/" + Random.id();
 
-   var name1 = Random.id();
 
-   var pickedName1 = null;
 
-   var route2 = "/" + Random.id();
 
-   var name2 = Random.id();
 
-   var pickedName2 = Random.id();
 
-   FlowRouter.route(route1, {
 
-     name: name1,
 
-     action: function() {
 
-       Tracker.autorun(function(c) {
 
-         pickedName1 = FlowRouter.getRouteName();
 
-         if(pickedName1 == name2) {
 
-           test.equal(pickedName1, pickedName2);
 
-           c.stop();
 
-           Meteor.defer(done);
 
-         }
 
-       });
 
-     }
 
-   });
 
-   FlowRouter.route(route2, {
 
-     name: name2,
 
-     action: function() {
 
-       pickedName2 = FlowRouter.getRouteName();
 
-       test.equal(pickedName1, name1);
 
-       test.equal(pickedName2, name2);
 
-     }
 
-   });
 
-   FlowRouter.go(name1);
 
-   Meteor.setTimeout(function() {
 
-     FlowRouter.go(name2);
 
-   }, 10);
 
- });
 
- Tinytest.addAsync(
 
- 'Client - Router - Reactivity - defer watchPathChange until new route rendered',
 
- function(test, done) {
 
-   var route1 = "/" + Random.id();
 
-   var name1 = Random.id();
 
-   var pickedName1 = null;
 
-   var route2 = "/" + Random.id();
 
-   var name2 = Random.id();
 
-   var pickedName2 = Random.id();
 
-   FlowRouter.route(route1, {
 
-     name: name1,
 
-     action: function() {
 
-       Tracker.autorun(function(c) {
 
-         FlowRouter.watchPathChange();
 
-         pickedName1 = FlowRouter.current().route.name;
 
-         if(pickedName1 == name2) {
 
-           test.equal(pickedName1, pickedName2);
 
-           c.stop();
 
-           Meteor.defer(done);
 
-         }
 
-       });
 
-     }
 
-   });
 
-   FlowRouter.route(route2, {
 
-     name: name2,
 
-     action: function() {
 
-       pickedName2 = FlowRouter.current().route.name;
 
-       test.equal(pickedName1, name1);
 
-       test.equal(pickedName2, name2);
 
-     }
 
-   });
 
-   FlowRouter.go(name1);
 
-   Meteor.setTimeout(function() {
 
-     FlowRouter.go(name2);
 
-   }, 10);
 
- });
 
- Tinytest.addAsync(
 
- 'Client - Router - Reactivity - reactive changes and trigger redirects',
 
- function(test, done) {
 
-   var name1 = Random.id();
 
-   var route1 = "/" + name1;
 
-   FlowRouter.route(route1, {
 
-     name: name1
 
-   });
 
-   var name2 = Random.id();
 
-   var route2 = "/" + name2;
 
-   FlowRouter.route(route2, {
 
-     name: name2,
 
-     triggersEnter: [function(context, redirect) {
 
-       redirect(name3);
 
-     }]
 
-   });
 
-   var name3 = Random.id();
 
-   var route3 = "/" + name3;
 
-   FlowRouter.route(route3, {
 
-     name: name3
 
-   });
 
-   var routeNamesFired = [];
 
-   FlowRouter.go(name1);
 
-   var c = null;
 
-   setTimeout(function() {
 
-     c = Tracker.autorun(function(c) {
 
-       routeNamesFired.push(FlowRouter.getRouteName());
 
-     });
 
-     FlowRouter.go(name2);
 
-   }, 50);
 
-   setTimeout(function() {
 
-     c.stop();
 
-     test.equal(routeNamesFired, [name1, name3]);
 
-     Meteor.defer(done);
 
-   }, 250);
 
- });
 
- Tinytest.addAsync(
 
- 'Client - Router - Reactivity - watchPathChange for every route change',
 
- function(test, done) {
 
-   var route1 = "/" + Random.id();
 
-   var name1 = Random.id();
 
-   var pickedName1 = null;
 
-   var route2 = "/" + Random.id();
 
-   var name2 = Random.id();
 
-   var pickedName2 = Random.id();
 
-   FlowRouter.route(route1, {
 
-     name: name1
 
-   });
 
-   FlowRouter.route(route2, {
 
-     name: name2
 
-   });
 
-   var ids = [];
 
-   var c = Tracker.autorun(function() {
 
-     FlowRouter.watchPathChange();
 
-     ids.push(FlowRouter.current().queryParams['id']);
 
-   });
 
-   FlowRouter.go(name1, {}, {id: "one"});
 
-   Meteor.setTimeout(function() {
 
-     FlowRouter.go(name1, {}, {id: "two"});
 
-   }, 10);
 
-   Meteor.setTimeout(function() {
 
-     FlowRouter.go(name2, {}, {id: "three"});
 
-   }, 20);
 
-   Meteor.setTimeout(function() {
 
-     test.equal(ids, [undefined, "one", "two", "three"]);
 
-     c.stop();
 
-     done();
 
-   }, 40);
 
- });
 
 
  |