let Parser = require('../index'); let rawWXML = ` var foo = "'hello world' from tools.wxs"; var bar = function (d) { return d; } module.exports = { FOO: foo, bar: bar, }; module.exports.msg = "some msg"; ` let newWXML = '' const parseHanlder = { onopentag(tagname, attrs, isSelfClosing) { newWXML += `<${tagname}${Object.entries(attrs).map(([key, value]) => ` ${key}="${value}"`)}${isSelfClosing ? ' /' : ''}>` }, onclosetag(tagname) { newWXML += `` }, ontext(text) { newWXML += text; }, onwxs(wxs) { newWXML += wxs; } }; test('parse wxs', () => { newWXML = '' let parser = new Parser(parseHanlder); parser.write(rawWXML) expect(newWXML).toBe(rawWXML) }) test('parse complex wxs', () => { newWXML = '' let rawWXML = ` var foo = "'hello world' from tools.wxs"; var bar = function (a, b) { return a < b ? a : b; } module.exports = { FOO: foo, bar: bar, }; module.exports.msg = "some msg"; ` let parser = new Parser(parseHanlder); parser.write(rawWXML) expect(newWXML).toBe(rawWXML) })