-
Notifications
You must be signed in to change notification settings - Fork 2
/
hulk.coffee
51 lines (40 loc) · 1.76 KB
/
hulk.coffee
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
Describe 'hulk.coffee', ->
hulk = require '../hulk'
describe '#parsePartials(source)', ->
it 'should return a list of partials', ->
hulk.parsePartials('{{> test}} hi {{>test2}}').should.eql ['test', 'test2']
describe '#compile()', ->
it 'should be a function', ->
hulk.compile.should.be.a 'function'
it 'should return a function', ->
hulk.compile().should.be.a 'function'
it 'should compile template', ->
hulk.compile('Hello {{what}}', {what:'world'})().should.eql 'Hello world'
describe 'Partials', ->
fs = require 'fs'
file = 'test_partial'
before ->
fs.writeFileSync file, 'How are you, {{what}}?'
it 'should include and compile template with {{> filename}} tag.', ->
hulk.compile("Hello {{what}}. {{> #{file}}}", {what:'world'})().should.eql 'Hello world. How are you, world?'
after ->
fs.unlinkSync file
describe 'Default Extension Partials', ->
fs = require 'fs'
filename = 'test_partial'
file = filename+'.hulk'
before ->
fs.writeFileSync file, 'How are you, {{what}}?'
it 'should include and compile template with {{> filename}} tag without extension.', ->
hulk.compile("Hello {{what}}. {{> #{filename}}}", {what:'world', defaultEngine:'hulk'})().should.eql 'Hello world. How are you, world?'
after ->
fs.unlinkSync file
describe 'Ignore missing Partials', ->
before ->
it 'should not throw if partials is missing', ->
(->
hulk.compile("Hi {{> test_ignore}}", {defaultEngine:'hulk'})().should.eql 'Hi '
).should.not.throw()
describe 'Recursive Sub-Partials', ->
it 'should include partials from partials', ->
hulk.compile('Yes, {{>view_partials}}', {what:'you', defaultEngine:'hulk', root:'views'})().replace(/\n/g,'').should.eql 'Yes, Hello you! How are you, you?'