summaryrefslogtreecommitdiffstats
path: root/packages/kadira-flow-router/test/client/group.spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/kadira-flow-router/test/client/group.spec.js')
-rw-r--r--packages/kadira-flow-router/test/client/group.spec.js113
1 files changed, 113 insertions, 0 deletions
diff --git a/packages/kadira-flow-router/test/client/group.spec.js b/packages/kadira-flow-router/test/client/group.spec.js
new file mode 100644
index 00000000..06e793ba
--- /dev/null
+++ b/packages/kadira-flow-router/test/client/group.spec.js
@@ -0,0 +1,113 @@
+Tinytest.add('Client - Group - validate path definition', function (test, next) {
+ // path & prefix must start with '/'
+ test.throws(function() {
+ new Group(null, {prefix: Random.id()});
+ });
+
+ var group = FlowRouter.group({prefix: '/' + Random.id()});
+
+ test.throws(function() {
+ group.route(Random.id());
+ });
+});
+
+Tinytest.addAsync('Client - Group - define and go to route with prefix', function (test, next) {
+ var prefix = Random.id();
+ var rand = Random.id();
+ var rendered = 0;
+
+ var group = FlowRouter.group({prefix: '/' + prefix});
+
+ group.route('/' + rand, {
+ action: function(_params) {
+ rendered++;
+ }
+ });
+
+ FlowRouter.go('/' + prefix + '/' + rand);
+
+ setTimeout(function() {
+ test.equal(rendered, 1);
+ setTimeout(next, 100);
+ }, 100);
+});
+
+Tinytest.addAsync('Client - Group - define and go to route without prefix', function (test, next) {
+ var rand = Random.id();
+ var rendered = 0;
+
+ var group = FlowRouter.group();
+
+ group.route('/' + rand, {
+ action: function(_params) {
+ rendered++;
+ }
+ });
+
+ FlowRouter.go('/' + rand);
+
+ setTimeout(function() {
+ test.equal(rendered, 1);
+ setTimeout(next, 100);
+ }, 100);
+});
+
+Tinytest.addAsync('Client - Group - subscribe', function (test, next) {
+ var rand = Random.id();
+
+ var group = FlowRouter.group({
+ subscriptions: function (params) {
+ this.register('baz', Meteor.subscribe('baz'));
+ }
+ });
+
+ group.route('/' + rand);
+
+ FlowRouter.go('/' + rand);
+ setTimeout(function() {
+ test.isTrue(!!GetSub('baz'));
+ next();
+ }, 100);
+});
+
+
+Tinytest.addAsync('Client - Group - set and retrieve group name', function (test, next) {
+ var rand = Random.id();
+ var name = Random.id();
+
+ var group = FlowRouter.group({
+ name: name
+ });
+
+ group.route('/' + rand);
+
+ FlowRouter.go('/' + rand);
+ setTimeout(function() {
+ test.isTrue(FlowRouter.current().route.group.name === name);
+ next();
+ }, 100);
+});
+
+Tinytest.add('Client - Group - expose group options on a route', function (test) {
+ var pathDef = "/" + Random.id();
+ var name = Random.id();
+ var groupName = Random.id();
+ var data = {aa: 10};
+ var layout = 'blah';
+
+ var group = FlowRouter.group({
+ name: groupName,
+ prefix: '/admin',
+ layout: layout,
+ someData: data
+ });
+
+ group.route(pathDef, {
+ name: name
+ });
+
+ var route = FlowRouter._routesMap[name];
+
+ test.equal(route.group.options.someData, data);
+ test.equal(route.group.options.layout, layout);
+});