1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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);
});
|