feat: initial public release
CI / Client installer (macos-latest) (push) Canceled after 0s
CI / Client installer (ubuntu-latest) (push) Canceled after 0s
CI / Client installer (windows-latest) (push) Canceled after 0s
CI / test (22) (push) Canceled after 0s
CI / test (24) (push) Canceled after 0s
CI / release-smoke (push) Canceled after 0s
CI / Client installer (macos-latest) (push) Canceled after 0s
CI / Client installer (ubuntu-latest) (push) Canceled after 0s
CI / Client installer (windows-latest) (push) Canceled after 0s
CI / test (22) (push) Canceled after 0s
CI / test (24) (push) Canceled after 0s
CI / release-smoke (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
import { extractApprovalListMetadata } from "../src/approval-metadata.js";
|
||||
|
||||
test("approval metadata normalizes official instance identity, time, amount, and summary", () => {
|
||||
const metadata = extractApprovalListMetadata({
|
||||
originatorUserName: "测试用户丁",
|
||||
originatorUserId: "user-bin",
|
||||
originatorDeptName: "销售部",
|
||||
createTime: 1_786_179_600_000,
|
||||
formComponentValues: [
|
||||
{ name: "报销金额", value: "¥4,812.00" },
|
||||
{ name: "报销事由", value: "客户现场出差" },
|
||||
{ name: "银行卡号", value: "6222000012345678" },
|
||||
],
|
||||
});
|
||||
assert.deepEqual(metadata, {
|
||||
applicantName: "测试用户丁",
|
||||
applicantUserId: "user-bin",
|
||||
applicantDepartment: "销售部",
|
||||
submittedAt: new Date(1_786_179_600_000).toISOString(),
|
||||
amount: 4812,
|
||||
currency: "CNY",
|
||||
summary: "客户现场出差",
|
||||
});
|
||||
assert.doesNotMatch(JSON.stringify(metadata), /6222000012345678/);
|
||||
});
|
||||
|
||||
test("approval metadata falls back to todo form summaries and chooses total amount", () => {
|
||||
const metadata = extractApprovalListMetadata({
|
||||
forms: [
|
||||
{ title: "发起人", content: "测试用户戊" },
|
||||
{ title: "部门", content: "产品部" },
|
||||
{ title: "单项费用", content: "100" },
|
||||
{ title: "合计金额", content: "USD 1,234.50" },
|
||||
{ title: "申请原因", content: "采购测试设备" },
|
||||
],
|
||||
});
|
||||
assert.equal(metadata.applicantName, "测试用户戊");
|
||||
assert.equal(metadata.applicantDepartment, "产品部");
|
||||
assert.equal(metadata.amount, 1234.5);
|
||||
assert.equal(metadata.currency, "USD");
|
||||
assert.equal(metadata.summary, "采购测试设备");
|
||||
});
|
||||
|
||||
test("approval metadata can derive the applicant from a standard DingTalk title", () => {
|
||||
assert.equal(
|
||||
extractApprovalListMetadata({ title: "测试用户甲提交的通用费用报销_北极大" }).applicantName,
|
||||
"测试用户甲",
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user