1 | cc = require '../lib/coffeecup'
|
2 |
|
3 | describe '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 |
|
9 | describe '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 |
|
18 | describe '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 |
|
31 | describe '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 |
|
37 | describe '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 |
|
46 | describe '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
|