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"],
|
require: ["@babel/register"],
|
||||||
recursive: true,
|
recursive: true,
|
||||||
spec: "test/**/*.test.js",
|
spec: "test/**/*.test.js",
|
||||||
timeout: 20000
|
timeout: 20000,
|
||||||
}
|
}
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "mocha"
|
"test": "mocha --reporter-option maxDiffSize=1e9"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"miniprogram-compiler": "^0.2.1"
|
"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