mirror of
https://github.com/msojocs/wx-compiler.git
synced 2025-07-19 00:00:04 +08:00
feat: test for wcc
This commit is contained in:
parent
5a22c4e6ee
commit
a9ee15f9e7
@ -2,5 +2,5 @@ module.exports = {
|
||||
require: ["@babel/register"],
|
||||
recursive: true,
|
||||
spec: "test/**/*.test.js",
|
||||
timeout: 20000
|
||||
timeout: 20000,
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"scripts": {
|
||||
"test": "mocha"
|
||||
"test": "mocha --reporter-option maxDiffSize=1e9"
|
||||
},
|
||||
"dependencies": {
|
||||
"miniprogram-compiler": "^0.2.1"
|
||||
|
439
test/wcc/lla/lla.test.js
Normal file
439
test/wcc/lla/lla.test.js
Normal file
File diff suppressed because one or more lines are too long
@ -1,59 +0,0 @@
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
var x = [
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
||||
|
||||
"../../../common/head.wxml",
|
||||
"../../../common/foot.wxml",
|
||||
"./page/API/index.wxml",
|
||||
"./page/cloud/index.wxml",
|
||||
"./page/common/foot.wxml",
|
||||
|
||||
"./page/common/head.wxml",
|
||||
"./page/component/index.wxml",
|
||||
"./page/extend/index.wxml",
|
||||
];
|
||||
const config = {
|
||||
num: 4,
|
||||
};
|
||||
let content = "";
|
||||
const funcName = "$gwx";
|
||||
const source = fs
|
||||
.readFileSync(path.resolve(__dirname, "./3/linux_output.js"))
|
||||
.toString();
|
||||
console.log(
|
||||
path.join(
|
||||
path.dirname("./page/API/components/set-tab-bar/set-tab-bar.wxml"),
|
||||
"../../../common/head.wxml"
|
||||
)
|
||||
);
|
||||
// "./page/common/head.wxml"
|
||||
process.exit(0);
|
||||
// 引入解析
|
||||
const deps = source.matchAll(/_ai\(.*?,x\[(\d+)\],.*?,x\[(\d+)\],\d+,\d+\)/g);
|
||||
console.log(deps);
|
||||
for (let dep of deps) {
|
||||
console.log(dep[0]);
|
||||
console.log(dep[1]);
|
||||
console.log(dep[2]);
|
||||
}
|
||||
|
||||
// gz函数2
|
||||
const exp = `function gz\\${funcName}_${
|
||||
config.num + 1
|
||||
}\\(\\)\\{[\\s\\S]*?__WXML_GLOBAL__\\.ops_cached\\.\\${funcName}_${
|
||||
config.num + 1
|
||||
}\n}`;
|
||||
|
||||
// console.log('exp --- ', exp)
|
||||
const gz = source.match(new RegExp(exp));
|
||||
// console.log(gz)
|
||||
content += gz[0].replace(
|
||||
new RegExp(`\\${funcName}\\_\\d+`, "g"),
|
||||
`${config.funcName}_1`
|
||||
);
|
397
test/wcc/llw/llw.test.js
Normal file
397
test/wcc/llw/llw.test.js
Normal file
File diff suppressed because one or more lines are too long
@ -1,16 +0,0 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
var x=['./miniprogram_npm/miniprogram-barrage/index.wxml','./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml','./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml','./miniprogram_npm/wxml-to-canvas/index.wxml','./page/API/components/set-tab-bar/set-tab-bar.wxml','../../../common/head.wxml','../../../common/foot.wxml','./page/API/index.wxml','./page/cloud/index.wxml','./page/common/foot.wxml','./page/common/head.wxml','./page/component/index.wxml','./page/extend/index.wxml'];
|
||||
const config = {
|
||||
num: 4
|
||||
}
|
||||
const source = fs.readFileSync(path.resolve(__dirname, './3/linux_output.js')).toString()
|
||||
const m0Exp = `var m${config.num}=function\\(e,s,r,gg\\){[\\s\\S]*{f:m${config.num},j:\\[.*?\\],i:\\[.*?\\],ti:\\[(.*?)\\],ic:\\[.*?\\]}`
|
||||
console.log('exp --- ', m0Exp)
|
||||
let m0 = source.match(new RegExp(m0Exp))
|
||||
const compIndex = m0[1].match(/\d+/g)
|
||||
console.log(compIndex)
|
||||
for(let index of compIndex)
|
||||
console.log(x[index])
|
||||
m0 = m0[0].replace(new RegExp(`m${config.num}`, 'g'), 'm0').replace(new RegExp(`x\\[${config.num}\\]`, 'g'), 'x[0]')
|
214
test/wcc/raw/raw.test.js
Normal file
214
test/wcc/raw/raw.test.js
Normal file
@ -0,0 +1,214 @@
|
||||
const assert = require("assert");
|
||||
const node = require("../../runner/node");
|
||||
const wine = require("../../runner/wine");
|
||||
const path = require("path");
|
||||
const fs = require("fs");
|
||||
|
||||
describe("wcc - raw", function () {
|
||||
describe("Raw: node output should equal with wine", function () {
|
||||
// afterEach(function(){
|
||||
// if(this.currentTest.state === 'failed'){
|
||||
// console.error('failed', this.currentTest)
|
||||
// }
|
||||
// })
|
||||
it("初次加载1", async function () {
|
||||
const projectPath = path.resolve(
|
||||
__dirname,
|
||||
"../../examples/miniprogram-demo/miniprogram"
|
||||
);
|
||||
const args = [
|
||||
"-d",
|
||||
"--split",
|
||||
">_<8005",
|
||||
"-xc",
|
||||
"12>_<8005./component/navigation-bar/navigation-bar.wxml>_<80051>_<8005mp-navigation-bar>_<8005./components/navigation-bar/index.wxml>_<80051>_<8005mp-navigation-bar>_<8005./components/page-scroll/index.wxml>_<80051>_<8005mp-navigation-bar>_<8005./miniprogram_npm/miniprogram-barrage/index.wxml>_<80050>_<8005./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml>_<80050>_<8005./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml>_<80050>_<8005./miniprogram_npm/wxml-to-canvas/index.wxml>_<80050>_<8005./page/API/index.wxml>_<80052>_<8005set-tab-bar>_<8005mp-navigation-bar>_<8005./page/API/components/set-tab-bar/set-tab-bar.wxml>_<80051>_<8005mp-navigation-bar>_<8005./page/cloud/index.wxml>_<80051>_<8005mp-navigation-bar>_<8005./page/component/index.wxml>_<80051>_<8005mp-navigation-bar>_<8005./page/extend/index.wxml>_<80051>_<8005mp-navigation-bar",
|
||||
"./common/foot.wxml",
|
||||
"./common/head.wxml",
|
||||
"./component/navigation-bar/navigation-bar.wxml",
|
||||
"./components/navigation-bar/index.wxml",
|
||||
"./components/page-scroll/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
||||
"./page/API/index.wxml",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
||||
"./page/cloud/index.wxml",
|
||||
"./page/common/foot.wxml",
|
||||
"./page/common/head.wxml",
|
||||
"./page/component/index.wxml",
|
||||
"./page/extend/index.wxml",
|
||||
"-gn",
|
||||
"$gwx",
|
||||
];
|
||||
const w = (await wine.wcc(args, projectPath)).replaceAll("\r\n", "\n");
|
||||
const n = await node.wcc(args, projectPath);
|
||||
const storagePath = path.resolve(
|
||||
__dirname,
|
||||
`miniprogram-demo/${this.test.title}`
|
||||
);
|
||||
try {
|
||||
fs.mkdirSync(storagePath, { recursive: true });
|
||||
} catch (error) {}
|
||||
|
||||
fs.writeFileSync(`${storagePath}/wine-output.js`, w);
|
||||
fs.writeFileSync(`${storagePath}/node-output.js`, n);
|
||||
let minLen = w.length;
|
||||
if (n.length < minLen) minLen = n.length;
|
||||
|
||||
for (let i = 0; i < minLen; i++) {
|
||||
if (w[i] != n[i]) {
|
||||
console.log("n:", n[i]);
|
||||
console.log("----------------");
|
||||
console.log("w:", w[i]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
console.log("test result:", w.length, n.length, w == n);
|
||||
assert.equal(w, n);
|
||||
});
|
||||
it("初次加载2", async function () {
|
||||
const projectPath = path.resolve(
|
||||
__dirname,
|
||||
"../../examples/miniprogram-demo/miniprogram/"
|
||||
);
|
||||
const args = [
|
||||
"-d",
|
||||
"--split",
|
||||
">_<4987",
|
||||
"-xc",
|
||||
"7>_<4987./packageSkyline/pages/flutter/half-page/index.wxml>_<49873>_<4987navigation-bar>_<4987page-scroll>_<4987mp-navigation-bar>_<4987./packageSkyline/pages/flutter/scale-page/index.wxml>_<49873>_<4987navigation-bar>_<4987page-scroll>_<4987mp-navigation-bar>_<4987./packageSkyline/pages/share-element/card/index.wxml>_<49873>_<4987navigation-bar>_<4987page-scroll>_<4987mp-navigation-bar>_<4987./packageSkyline/pages/share-element/list/index.wxml>_<49873>_<4987navigation-bar>_<4987page-scroll>_<4987mp-navigation-bar>_<4987./packageSkyline/pages/worklet/animation/index.wxml>_<49873>_<4987navigation-bar>_<4987page-scroll>_<4987mp-navigation-bar>_<4987./packageSkyline/pages/worklet/bottom-sheet/index.wxml>_<49873>_<4987navigation-bar>_<4987page-scroll>_<4987mp-navigation-bar>_<4987./packageSkyline/pages/worklet/gesture/index.wxml>_<49873>_<4987navigation-bar>_<4987page-scroll>_<4987mp-navigation-bar",
|
||||
"./common/foot.wxml",
|
||||
"./common/head.wxml",
|
||||
"./component/navigation-bar/navigation-bar.wxml",
|
||||
"./components/navigation-bar/index.wxml",
|
||||
"./components/page-scroll/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
||||
"./page/API/index.wxml",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
||||
"./page/cloud/index.wxml",
|
||||
"./page/common/foot.wxml",
|
||||
"./page/common/head.wxml",
|
||||
"./page/component/index.wxml",
|
||||
"./page/extend/index.wxml",
|
||||
"./packageSkyline/pages/flutter/half-page/index.wxml",
|
||||
"./packageSkyline/pages/flutter/scale-page/index.wxml",
|
||||
"./packageSkyline/pages/share-element/card/index.wxml",
|
||||
"./packageSkyline/pages/share-element/list/index.wxml",
|
||||
"./packageSkyline/pages/worklet/animation/index.wxml",
|
||||
"./packageSkyline/pages/worklet/bottom-sheet/index.wxml",
|
||||
"./packageSkyline/pages/worklet/gesture/index.wxml",
|
||||
"-gn",
|
||||
"$7061636b616765536b796c696e652f",
|
||||
];
|
||||
const w = (await wine.wcc(args, projectPath)).replaceAll("\r\n", "\n");
|
||||
const n = await node.wcc(args, projectPath);
|
||||
const storagePath = path.resolve(
|
||||
__dirname,
|
||||
`miniprogram-demo/${this.test.title}`
|
||||
);
|
||||
try {
|
||||
fs.mkdirSync(storagePath, { recursive: true });
|
||||
} catch (error) {}
|
||||
fs.writeFileSync(`${storagePath}/wine-output.js`, w);
|
||||
fs.writeFileSync(`${storagePath}/node-output.js`, n);
|
||||
assert.equal(w, n);
|
||||
});
|
||||
it("组件 - skyline - 自定义路由", async function () {
|
||||
const projectPath = path.resolve(
|
||||
__dirname,
|
||||
"../../examples/miniprogram-demo/miniprogram/"
|
||||
);
|
||||
const args = [
|
||||
"-d",
|
||||
"--split",
|
||||
">_<9107",
|
||||
"-xc",
|
||||
"12>_<9107./component/navigation-bar/navigation-bar.wxml>_<91071>_<9107mp-navigation-bar>_<9107./components/navigation-bar/index.wxml>_<91071>_<9107mp-navigation-bar>_<9107./components/page-scroll/index.wxml>_<91071>_<9107mp-navigation-bar>_<9107./miniprogram_npm/miniprogram-barrage/index.wxml>_<91070>_<9107./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml>_<91070>_<9107./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml>_<91070>_<9107./miniprogram_npm/wxml-to-canvas/index.wxml>_<91070>_<9107./page/API/index.wxml>_<91072>_<9107set-tab-bar>_<9107mp-navigation-bar>_<9107./page/API/components/set-tab-bar/set-tab-bar.wxml>_<91071>_<9107mp-navigation-bar>_<9107./page/cloud/index.wxml>_<91071>_<9107mp-navigation-bar>_<9107./page/component/index.wxml>_<91071>_<9107mp-navigation-bar>_<9107./page/extend/index.wxml>_<91071>_<9107mp-navigation-bar",
|
||||
"./common/foot.wxml",
|
||||
"./common/head.wxml",
|
||||
"./component/navigation-bar/navigation-bar.wxml",
|
||||
"./components/navigation-bar/index.wxml",
|
||||
"./components/page-scroll/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
||||
"./page/API/index.wxml",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
||||
"./page/cloud/index.wxml",
|
||||
"./page/common/foot.wxml",
|
||||
"./page/common/head.wxml",
|
||||
"./page/component/index.wxml",
|
||||
"./page/extend/index.wxml",
|
||||
"-gn",
|
||||
"$gwx",
|
||||
];
|
||||
const w = (await wine.wcc(args, projectPath)).replaceAll("\r\n", "\n");
|
||||
const n = await node.wcc(args, projectPath);
|
||||
const storagePath = path.resolve(
|
||||
__dirname,
|
||||
`miniprogram-demo/${this.test.title}`
|
||||
);
|
||||
try {
|
||||
fs.mkdirSync(storagePath, { recursive: true });
|
||||
} catch (error) {}
|
||||
fs.writeFileSync(`${storagePath}/wine-output.js`, w);
|
||||
fs.writeFileSync(`${storagePath}/node-output.js`, n);
|
||||
assert.equal(w, n);
|
||||
});
|
||||
it("组件 - skyline - 自定义路由 -2", async function () {
|
||||
const projectPath = path.resolve(
|
||||
__dirname,
|
||||
"../../examples/miniprogram-demo/miniprogram/"
|
||||
);
|
||||
const args = [
|
||||
"-d",
|
||||
"--split",
|
||||
">_<657",
|
||||
"-xc",
|
||||
"7>_<657./packageSkyline/pages/flutter/half-page/index.wxml>_<6573>_<657navigation-bar>_<657page-scroll>_<657mp-navigation-bar>_<657./packageSkyline/pages/flutter/scale-page/index.wxml>_<6573>_<657navigation-bar>_<657page-scroll>_<657mp-navigation-bar>_<657./packageSkyline/pages/share-element/card/index.wxml>_<6573>_<657navigation-bar>_<657page-scroll>_<657mp-navigation-bar>_<657./packageSkyline/pages/share-element/list/index.wxml>_<6573>_<657navigation-bar>_<657page-scroll>_<657mp-navigation-bar>_<657./packageSkyline/pages/worklet/animation/index.wxml>_<6573>_<657navigation-bar>_<657page-scroll>_<657mp-navigation-bar>_<657./packageSkyline/pages/worklet/bottom-sheet/index.wxml>_<6573>_<657navigation-bar>_<657page-scroll>_<657mp-navigation-bar>_<657./packageSkyline/pages/worklet/gesture/index.wxml>_<6573>_<657navigation-bar>_<657page-scroll>_<657mp-navigation-bar",
|
||||
"./common/foot.wxml",
|
||||
"./common/head.wxml",
|
||||
"./component/navigation-bar/navigation-bar.wxml",
|
||||
"./components/navigation-bar/index.wxml",
|
||||
"./components/page-scroll/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
||||
"./page/API/index.wxml",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
||||
"./page/cloud/index.wxml",
|
||||
"./page/common/foot.wxml",
|
||||
"./page/common/head.wxml",
|
||||
"./page/component/index.wxml",
|
||||
"./page/extend/index.wxml",
|
||||
"./packageSkyline/pages/flutter/half-page/index.wxml",
|
||||
"./packageSkyline/pages/flutter/scale-page/index.wxml",
|
||||
"./packageSkyline/pages/share-element/card/index.wxml",
|
||||
"./packageSkyline/pages/share-element/list/index.wxml",
|
||||
"./packageSkyline/pages/worklet/animation/index.wxml",
|
||||
"./packageSkyline/pages/worklet/bottom-sheet/index.wxml",
|
||||
"./packageSkyline/pages/worklet/gesture/index.wxml",
|
||||
"-gn",
|
||||
"$7061636b616765536b796c696e652f",
|
||||
];
|
||||
const w = (await wine.wcc(args, projectPath)).replaceAll("\r\n", "\n");
|
||||
const n = await node.wcc(args, projectPath);
|
||||
const storagePath = path.resolve(
|
||||
__dirname,
|
||||
`miniprogram-demo/${this.test.title}`
|
||||
);
|
||||
try {
|
||||
fs.mkdirSync(storagePath, { recursive: true });
|
||||
} catch (error) {}
|
||||
fs.writeFileSync(`${storagePath}/wine-output.js`, w);
|
||||
fs.writeFileSync(`${storagePath}/node-output.js`, n);
|
||||
assert.equal(w, n);
|
||||
});
|
||||
});
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user