wxs.test.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. let Parser = require('../index');
  2. let rawWXML = `
  3. <wxs src="./index.wxs" />
  4. <wxs module="lodash">
  5. var foo = "'hello world' from tools.wxs";
  6. var bar = function (d) {
  7. return d;
  8. }
  9. module.exports = {
  10. FOO: foo,
  11. bar: bar,
  12. };
  13. module.exports.msg = "some msg";
  14. </wxs>`
  15. let newWXML = ''
  16. const parseHanlder = {
  17. onopentag(tagname, attrs, isSelfClosing) {
  18. newWXML += `<${tagname}${Object.entries(attrs).map(([key, value]) => ` ${key}="${value}"`)}${isSelfClosing ? ' /' : ''}>`
  19. },
  20. onclosetag(tagname) {
  21. newWXML += `</${tagname}>`
  22. },
  23. ontext(text) {
  24. newWXML += text;
  25. },
  26. onwxs(wxs) {
  27. newWXML += wxs;
  28. }
  29. };
  30. test('parse wxs', () => {
  31. newWXML = ''
  32. let parser = new Parser(parseHanlder);
  33. parser.write(rawWXML)
  34. expect(newWXML).toBe(rawWXML)
  35. })
  36. test('parse complex wxs', () => {
  37. newWXML = ''
  38. let rawWXML = `
  39. <wxs src="./index.wxs" />
  40. <wxs module="lodash">
  41. var foo = "'hello world' from tools.wxs";
  42. var bar = function (a, b) {
  43. return a < b ? a : b;
  44. }
  45. module.exports = {
  46. FOO: foo,
  47. bar: bar,
  48. };
  49. module.exports.msg = "some msg";
  50. </wxs>`
  51. let parser = new Parser(parseHanlder);
  52. parser.write(rawWXML)
  53. expect(newWXML).toBe(rawWXML)
  54. })