UNPKG

@alicd/templateparser

Version:

walle template parser

67 lines (60 loc) 2.44 kB
import TemplateParser from '../dist/TemplateParser'; describe('sum', () => { it('comment', () => { var rawHtml = '<!-- var hello = 1; var foo = 123; --> <div>111</div>'; var parser = new TemplateParser({ comment: true }); parser.parseTemplate(rawHtml); expect(parser.domJSON).toBeDefined(); }); it('x-if', () => { var rawHtml = '<div x-if={this.state.test === 1 }>x-if</div><div x-elseif={this.state.test === 2 }>x-if</div><div x-else={true }>x-if</div>'; var parser = new TemplateParser({ comment: true }); parser.parseTemplate(rawHtml); expect(parser.domJSON).toBeDefined(); }); it('x-for', () => { var rawHtml = '<div x-for={(item, index) in this.state.list }>{ index + ":" +item }</div>'; var parser = new TemplateParser({ comment: true }); parser.parseTemplate(rawHtml); expect(parser.domJSON).toBeDefined(); }); it('template parser render', () => { var rawHtml = '<div style={{ background:"#F00", color: "#00F", height:"50px" }} ><div x-for={(item, index) in this.state.list }>{ index + ":" +item }</div></div>'; var parser = new TemplateParser({ comment: true }); parser.render(rawHtml, {}); expect(parser.domJSON).toBeDefined(); expect(parser.logicJSON).toBeDefined(); }); it('$ 、#', () => { var rawHtml = '<div title="$title"><button onClick={#handleClick}></button></div>'; var parser = new TemplateParser({ comment: true }); parser.parseTemplate(rawHtml); expect(parser.domJSON).toBeDefined(); }); it('arrow functions', () => { var rawHtml = '<button onClick={(e)=>{console.log(e)}}>button</button>'; var parser = new TemplateParser({ comment: true }); parser.render(rawHtml, {}); expect(parser.domJSON).toBeDefined(); expect(parser.logicJSON).toBeDefined(); }); it('x-block, x-bind', () => { var rawHtml = '<x-block><input x-bind={this.state.bind} /></x-block>'; var parser = new TemplateParser({ comment: true }); parser.render(rawHtml, {}); expect(parser.domJSON).toBeDefined(); expect(parser.logicJSON).toBeDefined(); }); it('spread attribute', () => { var rawHtml = '<!-- spread attribute --><div {...this.state.layout}>spread attribute</div>'; var parser = new TemplateParser({ comment: false }); parser.render(rawHtml, {}); expect(parser.domJSON).toBeDefined(); expect(parser.logicJSON).toBeDefined(); }); });