let Parser = require('../index'); const parse = (str) => { let ans = ''; let parser = new Parser({ onopentag(tagname, attrs, isSelfClosing) { // console.log('open tag', tagname); // console.log('attrs', attrs); ans += `<${tagname}${Object.entries(attrs).map(([key, value]) => ` ${key}="${value}"`)}${isSelfClosing ? ' /' : ''}>` }, onclosetag(tagname) { // console.log('close tag', tagname); ans += `` }, ontext(text) { // console.log('text', text); ans += text; }, oncomment(cmt) { ans += `` }, ontemplate(tmp) { // console.log('template', tmp); ans += `{{${tmp}}}` }, onwxs(wxs) { // console.log('wxs', wxs); ans += wxs } }); parser.write(str) return ans } test('base', () => { let origin = ` {{ a > 2 ? 'as' : '12' }} zxc{{ middle }}asdasd` let final = parse(origin) expect(final).toBe(origin) }) test('tag name with whitespace', () => { let origin = `aaa` let final = parse(origin) expect(final).toBe(origin.replace(/\s/g, '')) }) test('tag name with number', () => { let origin = `aaa` let final = parse(origin) console.log(final); expect(final).toBe(origin) })