UNPKG

1.46 kBJavaScriptView Raw
1var assert = require('assert');
2var hbs = require('..');
3var H = require('./helpers');
4
5describe('helpers', function() {
6
7 describe('sync', function() {
8 var dirname = __dirname + '/views/helpers';
9
10 function sync(s, options) {
11 return new hbs.SafeString("-sync-" + s);
12 }
13
14 it ('should register functions', function(done) {
15 var hb = hbs.create();
16 hb.registerHelper("sync", sync);
17 var render = hb.express3({
18 viewsDir: dirname
19 });
20 var locals = H.createLocals('express3', dirname);
21
22 render(dirname + '/home/index.hbs', locals, function(err, html) {
23 assert.equal('<default>index-sync-index</default>', H.stripWs(html));
24 done();
25 });
26 });
27 });
28
29 describe('async', function() {
30 var dirname = __dirname + '/views/helpers';
31 it ('should register functions', function(done) {
32 var hb = hbs.create();
33 function async(s, cb) {
34 setTimeout(function() {
35 cb(new hb.SafeString("-async-" + s));
36 }, Math.floor((Math.random()*10)+1));
37 }
38 hb.registerAsyncHelper("async", async);
39
40 var render = hb.express3({
41 viewsDir: dirname
42 });
43 var locals = H.createLocals('express3', dirname);
44
45 render(dirname + '/home/async.hbs', locals, function(err, html) {
46 assert.equal('<default>asynctemplate-async-foo-async-bar-async-bah-async-baz</default>', H.stripWs(html));
47 done();
48 });
49 });
50
51
52 });
53
54});