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
52 lines
1.9 KiB
TypeScript
52 lines
1.9 KiB
TypeScript
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,
|
|
"测试用户甲",
|
|
);
|
|
});
|