UNPKG

2.09 kBtext/coffeescriptView Raw
1cc = require '../lib/coffeecup'
2
3describe 'Context vars', ->
4 describe 'h1 @foo', ->
5 it 'should render <h1>bar</h1>', ->
6 v = -> h1 @foo
7 cc.render(v, foo: 'bar').should.equal '<h1>bar</h1>'
8
9describe 'Local vars', ->
10 describe 'h1 "dynamic: " + obj.foo', ->
11 it 'should render <h1>dynamic: bar</h1>', ->
12 obj = {foo: 'bar'}
13 v = -> h1 "dynamic: " + obj.foo
14 cc.render(v, locals: {obj: obj}).should.equal '<h1>dynamic: bar</h1>'
15 obj.foo = 'baz'
16 cc.render(v, locals: {obj: obj}).should.equal '<h1>dynamic: baz</h1>'
17
18describe 'Local vars, hardcoded', ->
19 describe 'h1 "harcoded: " + obj.foo', ->
20 it 'should render <h1>harcoded: bar</h1>', ->
21 obj = {foo: 'bar'}
22 v = -> h1 "harcoded: " + obj.foo
23 expected = '<h1>harcoded: bar</h1>'
24 compiled = cc.compile(v, hardcode: {obj})
25 result = compiled()
26 result.should.equal expected
27 obj.foo = 'baz'
28 result = compiled()
29 result.should.equal expected
30
31describe 'Context vars optimized', ->
32 describe 'h1 @foo', ->
33 it 'should render <h1>bar</h1>', ->
34 v = -> h1 @foo
35 cc.render(v, optimized: true, foo: 'bar', cache: on).should.equal '<h1>bar</h1>'
36
37describe 'Local vars optimized', ->
38 describe 'h1 "dynamic: " + obj.foo', ->
39 it 'should render <h1>dynamic: bar</h1>', ->
40 obj = {foo: 'bar'}
41 v = -> h1 "dynamic: " + obj.foo
42 cc.render(v, optimized: true, locals: {obj: obj, cache: on}).should.equal '<h1>dynamic: bar</h1>'
43 obj.foo = 'baz'
44 cc.render(v, optimized: true, locals: {obj: obj}, cache: on).should.equal '<h1>dynamic: baz</h1>'
45
46describe 'Local vars, hardcoded optimized', ->
47 describe 'h1 "harcoded: " + obj.foo', ->
48 it 'should render <h1>harcoded: bar</h1>', ->
49 obj = {foo: 'bar'}
50 v = -> h1 "harcoded: " + obj.foo
51 expected = '<h1>harcoded: bar</h1>'
52 compiled = cc.compile(v, optimized: true, hardcode: {obj, cache: on})
53 result = compiled()
54 result.should.equal expected
55 obj.foo = 'baz'
56 result = compiled()
57 result.should.equal expected