UNPKG

caveman

Version:
64 lines (57 loc) 2.13 kB
Caveman = require('../caveman.js') beforeEach -> Caveman.options.openTag = '{{'; Caveman.options.closeTag = '}}'; Caveman.options.shrinkWrap = true; describe 'Partials', -> it 'should be able to save a partial', -> expect(Caveman.partials.emailLink).toBe undefined template = '<a href="mailto:{{d.email}}" class="{{d.className}}">{{d.email}}</a>' Caveman.register('emailLink', template) expect(Caveman.partials.emailLink).not.toBe undefined it 'should be able to render a partial', -> data = { users: [ { email: 'jimmy@gmail.com' } { email: 'ralph@gmail.com', className: 'active' } { email: 'joe@gmail.com' } ] } template = """ {{- for d.users }} <div class="user">{{- render emailLink }}</div> {{- end }} """ expected = '<div class="user">' + '<a href="mailto:jimmy@gmail.com" class="">jimmy@gmail.com</a>' + '</div>' + '<div class="user">' + '<a href="mailto:ralph@gmail.com" class="active">ralph@gmail.com</a>' + '</div>' + '<div class="user">' + '<a href="mailto:joe@gmail.com" class="">joe@gmail.com</a>' + '</div>' expect(Caveman(template, data)).toEqual(expected) it 'should be able to render a partial with an optional scope', -> data = { users: [ { email: 'jimmy@gmail.com' } { email: 'ralph@gmail.com', className: 'active' } { email: 'joe@gmail.com' } ] } template = """ <div class="user">{{- render emailLink d.users[1] }}</div> """ expected = '<div class="user">' + '<a href="mailto:ralph@gmail.com" class="active">ralph@gmail.com</a>' + '</div>' expect(Caveman(template, data)).toEqual(expected) it 'should be able to render a partial with an object literal as scope', -> template = """ <div class="user">{{- render emailLink { email: 'example@gmail.com' } }}</div> """ expected = '<div class="user">' + '<a href="mailto:example@gmail.com" class="">example@gmail.com</a>' + '</div>' expect(Caveman(template, {})).toEqual(expected)