UNPKG

5.81 kBJavaScriptView Raw
1// Generated by CoffeeScript 1.7.1
2var Block, assert, async, makeReq, makeRes, path;
3
4async = require("async");
5
6assert = require("assert");
7
8path = require('path');
9
10makeReq = function(config) {
11 if (config == null) {
12 config = {};
13 }
14 return config;
15};
16
17makeRes = function() {
18 return {
19 locals: {}
20 };
21};
22
23Block = (require('../index.js')).block;
24
25describe('Block', function() {
26 describe('$block.render()', function() {
27 it('verify region', function(done) {
28 var region_verify, req, res;
29 region_verify = null;
30 Block.configure({
31 blocks: [
32 {
33 init: function(req, res, next) {
34 return next('<div>1</div>');
35 },
36 filters: [
37 function(options, cb) {
38 region_verify = options.region;
39 return cb(null, true);
40 }
41 ]
42 }
43 ]
44 });
45 req = {};
46 res = {
47 locals: {}
48 };
49 return Block.init(req, res, function(err) {
50 return res.locals.$block.render('region1', function(err, html) {
51 assert.equal("region1", region_verify);
52 return done();
53 });
54 });
55 });
56 return it('success', function(done) {
57 var req, res;
58 Block.configure({
59 blocks: [
60 {
61 init: function(req, res, next) {
62 return next('<div>1</div>');
63 },
64 filters: [
65 function(options, cb) {
66 return cb(null, true);
67 }
68 ],
69 options: {
70 id: "block1"
71 }
72 }, {
73 init: function(req, res, next) {
74 return next('<div>2</div>');
75 },
76 filters: [
77 function(options, cb) {
78 return cb(null, true);
79 }
80 ],
81 options: {
82 id: "block2"
83 }
84 }, {
85 init: function(req, res, next) {
86 return next('<div>3</div>');
87 },
88 filters: [
89 function(options, cb) {
90 return cb(null, false);
91 }
92 ]
93 }
94 ]
95 });
96 req = makeRes();
97 res = {
98 locals: {
99 $theme: {}
100 }
101 };
102 return Block.init(req, res, function(err) {
103 assert.equal('need theme' !== err, true);
104 return res.locals.$block.render('region1', function(err, html) {
105 assert.equal("<div>1</div><div>2</div>", html);
106 assert.equal(true, res.locals.$block.current != null);
107 assert.equal("block2", res.locals.$block.current.id);
108 return done();
109 });
110 });
111 });
112 });
113 describe('$block.exists()', function() {
114 it('true', function(done) {
115 var req, res;
116 Block.configure({
117 blocks: [
118 {
119 init: function(req, res, next) {
120 return next('<div>1</div>');
121 },
122 filters: [
123 function(options, cb) {
124 return cb(null, true);
125 }
126 ]
127 }
128 ]
129 });
130 req = makeRes();
131 res = {
132 locals: {
133 $theme: {
134 current: {
135 name: 'default'
136 }
137 }
138 }
139 };
140 return Block.init(req, res, function(err) {
141 assert.equal('need theme' !== err, true);
142 return res.locals.$block.exists('region1', function(err, result) {
143 assert.equal(true, result);
144 return done();
145 });
146 });
147 });
148 it('false', function(done) {
149 var req, res;
150 Block.configure({
151 blocks: [
152 {
153 init: function(req, res, next) {
154 return next('<div>1</div>');
155 },
156 filters: [
157 function(options, cb) {
158 return cb(null, false);
159 }
160 ]
161 }
162 ]
163 });
164 req = makeRes();
165 res = {
166 locals: {
167 $theme: {
168 current: {
169 name: 'default'
170 }
171 }
172 }
173 };
174 return Block.init(req, res, function(err) {
175 assert.equal('need theme' !== err, true);
176 return res.locals.$block.exists('region1', function(err, result) {
177 assert.equal(false, result);
178 return done();
179 });
180 });
181 });
182 return it('show be true if no filter', function(done) {
183 var req, res;
184 Block.configure({
185 blocks: [
186 {
187 init: function(req, res, next) {
188 return next('<div>1</div>');
189 }
190 }
191 ]
192 });
193 req = makeRes();
194 res = {
195 locals: {
196 $theme: {
197 current: {
198 name: 'default'
199 }
200 }
201 }
202 };
203 return Block.init(req, res, function(err) {
204 assert.equal('need theme' !== err, true);
205 return res.locals.$block.exists('region1', function(err, result) {
206 assert.equal(true, result);
207 return done();
208 });
209 });
210 });
211 });
212 return describe('filter', function() {
213 return describe('region()', function() {
214 it('success', function(done) {
215 var region1;
216 region1 = Block.filters.region('region1');
217 return region1({
218 region: 'region1'
219 }, function(err, result) {
220 assert.equal(true, result);
221 return done();
222 });
223 });
224 return it('failed', function(done) {
225 var region1;
226 region1 = Block.filters.region('region1');
227 return region1({
228 region: 'region2'
229 }, function(err, result) {
230 assert.equal(false, result);
231 return done();
232 });
233 });
234 });
235 });
236});
237
238//# sourceMappingURL=block_test.map