perf: test for module

This commit is contained in:
msojocs 2022-09-08 21:47:18 +08:00
parent fd7649ca3c
commit 424e66a69e
8 changed files with 127 additions and 1498 deletions

View File

@ -1,51 +0,0 @@
const assert = require("assert");
const ASTHelper = require("../../runner/ast-helper");
const path = require("path");
const fs = require("fs");
const COMPILER = require('../wcc_node/lib/index')
const originDE = assert.deepEqual
assert.deepEqual = function(){
// console.log(arguments[0])
try {
originDE.apply(this, arguments)
} catch (error) {
console.log('\t默认deepEqual检测失败尝试检测语法')
const dw = ASTHelper.code2ast(JSON.stringify(arguments[0]))
const dn = ASTHelper.code2ast(JSON.stringify(arguments[1]))
originDE(dw, dn);
}
}
describe("wcc - lla", function () {
describe("lla: node output should deep equal with wine", function () {
it("case1", async function () {
const casePath = path.resolve(__dirname, './wcc/case1')
const configPath = path.resolve(__dirname, './wcc/case1/config.json')
const projectPath = path.resolve(
__dirname,
"../../examples/miniprogram-demo/miniprogram"
);
const storagePath = path.resolve(
__dirname,
`wcc/case1/output`
);
const config = JSON.parse(fs.readFileSync(configPath).toString());
config.cwd = path.join(configPath, config.cwd)
try {
fs.mkdirSync(storagePath, { recursive: true });
} catch (error) {}
let nodeResult = await COMPILER.wcc(config);
nodeResult = nodeResult.substring(0, nodeResult.length - 1)
const wineResult = fs.readFileSync(`${casePath}/output/wcc_node_wine.js`)
fs.writeFileSync(
`${storagePath}/node-output.js`,
nodeResult
);
assert.equal(wineResult, nodeResult);
});
});
});

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,6 @@
"replaceContent": {
"./packageComponent/pages/camera-scan-code/camera-scan-code.wxml": "<import data-ib-structured-id=\"0\" src=\"../../../common/head.wxml\" />\n<import data-ib-structured-id=\"1\" src=\"../../../common/foot.wxml\" />\n\n<view class=\"container page\" data-weui-theme=\"{{theme}}\" data-ib-structured-id=\"2\">\n <template data-ib-structured-id=\"3\" is=\"head\" data=\"{{title: 'camera'}}\"/>\n\n <view class=\"page-body\" data-ib-structured-id=\"4\">\n <view class=\"page-body-wrapper\" data-ib-structured-id=\"5\">\n <camera\n mode=\"scanCode\"\n flash=\"off\"\n bindscancode=\"scanCode\"\n binderror=\"error\"\n data-ib-structured-id=\"6\">\n </camera>\n <view class=\"btn-area\" data-ib-structured-id=\"7\">\n <button type=\"primary\" bindtap=\"navigateBack\" data-ib-structured-id=\"8\">\n 返回正常模式\n </button>\n </view>\n <form data-ib-structured-id=\"9\">\n <view class=\"page-section\" data-ib-structured-id=\"10\">\n <view class=\"weui-cells weui-cells_after-title\" data-ib-structured-id=\"11\">\n <view class=\"weui-cell weui-cell_input\" data-ib-structured-id=\"12\">\n <view class=\"weui-cell__hd\" data-ib-structured-id=\"13\">\n <view class=\"weui-label\" data-ib-structured-id=\"14\">类型</view>\n </view>\n <view class=\"weui-cell__bd\" data-ib-structured-id=\"15\">\n {{ result.type }}\n </view>\n </view>\n <view class=\"weui-cell weui-cell_input\" data-ib-structured-id=\"16\">\n <view class=\"weui-cell__hd\" data-ib-structured-id=\"17\">\n <view class=\"weui-label\" data-ib-structured-id=\"18\">结果</view>\n </view>\n <view class=\"weui-cell__bd\" data-ib-structured-id=\"19\">\n {{ result.result }}\n </view>\n </view>\n </view>\n </view>\n </form>\n </view>\n </view>\n\n <template data-ib-structured-id=\"20\" is=\"foot\" />\n</view>\n"
},
"cwd": "../../../../../examples/miniprogram-demo/miniprogram/",
"cwd": "../../../../../../examples/miniprogram-demo/miniprogram/",
"lazyloadConfig": ""
}

View File

@ -0,0 +1,60 @@
const assert = require("assert");
const ASTHelper = require("../../../runner/ast-helper");
const path = require("path");
const scan = require("../../utils/scan");
const fs = require("fs");
const COMPILER = require("../../wcc_node/lib/index");
const originDE = assert.deepEqual;
assert.deepEqual = function () {
// console.log(arguments[0])
try {
originDE.apply(this, arguments);
} catch (error) {
console.log("\t默认deepEqual检测失败尝试检测语法");
const dw = ASTHelper.code2ast(JSON.stringify(arguments[0]));
const dn = ASTHelper.code2ast(JSON.stringify(arguments[1]));
originDE(dw, dn);
}
};
describe("module wcc", function () {
const configPaths = scan.scanFiles(__dirname);
for (const configPath of configPaths) {
const casePath = path.dirname(configPath);
const caseName = path.basename(casePath);
const type = path.basename(path.dirname(casePath));
const config = JSON.parse(fs.readFileSync(configPath).toString());
describe(`${type}: node output should deep equal or equal with wine`, function () {
it(`${type} - ${caseName}`, async function () {
// const projectPath = path.join(casePath, config.cwd);
const storagePath = path.join(casePath, `output`);
config.cwd = path.join(configPath, config.cwd);
if(!fs.existsSync(config.cwd)){
throw new Error('cwd not exists!')
}
try {
fs.mkdirSync(storagePath, { recursive: true });
} catch (error) {}
let nodeResult = await COMPILER.wcc(config);
if(!!config.lazyloadConfig){
const wineResult = JSON.parse(fs.readFileSync(
`${casePath}/output/wine-output.json`
));
fs.writeFileSync(`${storagePath}/node-output.json`, JSON.stringify(nodeResult, null, 4));
assert.deepEqual(wineResult, nodeResult);
}else{
nodeResult = nodeResult.substring(0, nodeResult.length - 1);
const wineResult = fs.readFileSync(
`${casePath}/output/wine-output.js`
);
fs.writeFileSync(`${storagePath}/node-output.js`, nodeResult);
assert.equal(wineResult, nodeResult);
}
});
});
}
});

File diff suppressed because one or more lines are too long

View File

@ -19,7 +19,7 @@
"./common/lib/weui.wxss",
"./page/common/index-skyline.wxss"
],
"cwd": "../../../../examples/miniprogram-demo/miniprogram/",
"cwd": "../../../../../../examples/miniprogram-demo/miniprogram/",
"lazyload": true,
"replaceContent": {
"./page/component/index.wxss": "@import \"../../common/reset.wxss\";\r\n@import \"../common/index-skyline.wxss\";\r\n\r\n.weui-agree__link {\r\n display: inline;\r\n color: #576b95;\r\n}\r\n\r\n[data-weui-theme=dark] .weui-agree__link {\r\n color: #7d90a9;\r\n}\r\n"

View File

@ -0,0 +1,60 @@
const assert = require("assert");
const ASTHelper = require("../../../runner/ast-helper");
const path = require("path");
const scan = require("../../utils/scan");
const fs = require("fs");
const COMPILER = require("../../wcc_node/lib/index");
const originDE = assert.deepEqual;
assert.deepEqual = function () {
// console.log(arguments[0])
try {
originDE.apply(this, arguments);
} catch (error) {
console.log("\t默认deepEqual检测失败尝试检测语法");
const dw = ASTHelper.code2ast(JSON.stringify(arguments[0]));
const dn = ASTHelper.code2ast(JSON.stringify(arguments[1]));
originDE(dw, dn);
}
};
describe("module wcsc", function () {
const configPaths = scan.scanFiles(__dirname);
for (const configPath of configPaths) {
const casePath = path.dirname(configPath);
const caseName = path.basename(casePath);
const type = path.basename(path.dirname(casePath));
const config = JSON.parse(fs.readFileSync(configPath).toString());
describe(`${type}: node output should deep equal or equal with wine`, function () {
it(`${type} - ${caseName}`, async function () {
// const projectPath = path.join(casePath, config.cwd);
const storagePath = path.join(casePath, `output`);
config.cwd = path.join(configPath, config.cwd);
if(!fs.existsSync(config.cwd)){
throw new Error('cwd not exists!')
}
try {
fs.mkdirSync(storagePath, { recursive: true });
} catch (error) {}
let nodeResult = await COMPILER.wcsc(config);
if(config.lazyload){
const wineResult = JSON.parse(fs.readFileSync(
`${casePath}/output/wine-output.json`
).toString());
fs.writeFileSync(`${storagePath}/node-output.json`, JSON.stringify(nodeResult, null, 4));
assert.deepEqual(wineResult, nodeResult);
}else{
nodeResult = nodeResult.substring(0, nodeResult.length - 1);
const wineResult = fs.readFileSync(
`${casePath}/output/wine-output.js`
);
fs.writeFileSync(`${storagePath}/node-output.js`, nodeResult);
assert.equal(wineResult, nodeResult);
}
});
});
}
});

View File

@ -119,17 +119,16 @@ async function wxssToJS(options) {
return c
})
}
const t = funcList
funcList = {
common: t.comm,
const t = Object.keys(funcList).sort()
result = {
common: funcList.comm,
pageWxss: {}
}
for(let key in t){
for(let key of t){
if(key.endsWith('.wxss')){
funcList.pageWxss[key] = t[key]
result.pageWxss[key] = funcList[key]
}
}
result = funcList
}
resolve(result)
} else {