chore: 补充单元测试

This commit is contained in:
xiaojunnuo
2026-05-01 09:16:46 +08:00
parent 80092823db
commit 0a0f1e90e1
24 changed files with 656 additions and 187 deletions
+2
View File
@@ -13,6 +13,7 @@
"build3": "rollup -c",
"build2": "vue-tsc --noEmit && vite build",
"preview": "vite preview",
"test:unit": "mocha --no-config --node-option no-warnings --node-option loader=ts-node/esm \"src/**/*.test.ts\"",
"pub": "npm publish",
"compile": "tsc --skipLibCheck --watch"
},
@@ -54,6 +55,7 @@
"eslint-plugin-prettier": "^4.2.1",
"mocha": "^10.1.0",
"prettier": "^2.8.8",
"ts-node": "^10.9.2",
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
@@ -0,0 +1,55 @@
/// <reference types="mocha" />
import { expect } from "chai";
import { createCertDomainGetterInputDefine, createRemoteSelectInputDefine } from "./util.js";
describe("plugin-lib common util", () => {
it("builds cert domain getter input define with defaults", () => {
const define = createCertDomainGetterInputDefine();
expect(define.title).to.equal("当前证书域名");
expect(define.component.name).to.equal("cert-domains-getter");
expect(define.required).to.equal(true);
expect(define.template).to.equal(false);
expect(define.mergeScript).to.contain("form.cert");
});
it("allows overriding cert input key and props", () => {
const define = createCertDomainGetterInputDefine({
certInputKey: "customCert",
props: {
title: "自定义域名",
required: false,
},
});
expect(define.title).to.equal("自定义域名");
expect(define.required).to.equal(false);
expect(define.mergeScript).to.contain("form.customCert");
});
it("builds remote select input define with expected component options", () => {
const define = createRemoteSelectInputDefine({
title: "选择资源",
action: "ListResource",
typeName: "resource",
multi: false,
search: true,
watches: ["region"],
});
expect(define.title).to.equal("选择资源");
expect(define.required).to.equal(true);
expect(define.component).to.include({
name: "remote-select",
vModel: "value",
action: "ListResource",
typeName: "resource",
mode: "default",
multi: false,
search: true,
});
expect(define.component.watches).to.deep.equal(["certDomains", "accessId", "region"]);
});
});
+6 -16
View File
@@ -7,7 +7,7 @@
"esModuleInterop": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"inlineSourceMap":false,
"inlineSourceMap": false,
"sourceMap": false,
"noImplicitThis": true,
"noUnusedLocals": true,
@@ -16,27 +16,17 @@
"pretty": true,
"declaration": true,
"forceConsistentCasingInFileNames": true,
"typeRoots": [ "./typings", "./node_modules/@types"],
"typeRoots": ["./typings", "./node_modules/@types"],
"outDir": "dist",
"rootDir": "src",
"composite": false,
"useDefineForClassFields": true,
"strict": false,
// "sourceMap": true,
// "sourceMap": true,
"resolveJsonModule": true,
"isolatedModules": false,
"lib": ["ESNext", "DOM"],
"lib": ["ESNext", "DOM"]
},
"include": [
"src/**/*.ts",
"src/**/*.d.ts",
"src/**/*.json"
],
"exclude": [
"*.js",
"*.ts",
"dist",
"node_modules",
"test"
],
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.json"],
"exclude": ["*.js", "*.ts", "dist", "node_modules", "src/**/*.test.ts", "test"]
}