const compiler = require('../lib') function assertCodegen (template, templateCode, renderCode = `with(this){}`, options = {}) { const res = compiler.compile(template, { resourcePath: 'test.wxml', mp: Object.assign({ minified: true, isTest: true, platform: 'mp-baidu' }, options) }) expect(res.template).toBe(templateCode) expect(res.render).toBe(renderCode) } describe('mp:compiler-mp-baidu', () => { it('generate v-for directive', () => { assertCodegen( '', `` ) }) it('generate scoped slot', () => { assertCodegen( '', `{{foo}}` ) assertCodegen( '{{ bar.foo }}', `{{foo}}` ) }) it('generate named scoped slot', () => { assertCodegen( '', `{{foo}}` ) assertCodegen( '{{ bar.foo }}', `{{foo}}` ) }) it('generate scoped slot with multiline v-if', () => { assertCodegen( '', `{{foo}}` ) assertCodegen( '{{ bar.foo }}', `{{foo}}` ) }) it('generate scoped slot', () => { assertCodegen( '{{ user.lastName }}', `` ) assertCodegen( '{{ user.lastName }}', `` ) }) it('generate vue id', () => { assertCodegen( '', `` ) assertCodegen( '', `` ) assertCodegen( '', `` ) assertCodegen( '', `` ) assertCodegen( '', `` ) }) it('generate text trim', () => { assertCodegen( '\nN: {{title}}\n′', `{{'N: '+title+"\\\\n′"}}` ) assertCodegen( '我是第一行1\n我的第二行', `我是第一行1\n我的第二行` ) assertCodegen( '我是第一行2\n我的第二行1{{title}}', `{{"我是第一行2\\\\n我的第二行1"+title}}` ) assertCodegen( `我是第一行3 我的第二行2{{title}}`, `{{"我是第一行3\\\\n 我的第二行2"+title}}` ) }) })