87 lines
3.4 KiB
JavaScript
87 lines
3.4 KiB
JavaScript
"use strict";
|
||
|
||
const path = require("path");
|
||
const assert = require("assert");
|
||
const ui = require(path.join(__dirname, "..", "web", "app.js"));
|
||
|
||
assert.strictEqual(ui.fmtAbsMoney(-1280), "1,280.00");
|
||
assert.strictEqual(ui.fmtAbsMoney(1280), "1,280.00");
|
||
assert.strictEqual(ui.fmtAbsMoney("60.5"), "60.50");
|
||
|
||
assert.strictEqual(ui.eventIsNegative({ posting_kind: "reversal" }), true);
|
||
assert.strictEqual(ui.eventIsNegative({ posting_kind: "normal", is_repayment: true }), true);
|
||
assert.strictEqual(ui.eventIsNegative({ posting_kind: "normal", is_repayment: false }), false);
|
||
|
||
assert.strictEqual(ui.cycleTab(0, 4, false), 1);
|
||
assert.strictEqual(ui.cycleTab(3, 4, false), 0);
|
||
assert.strictEqual(ui.cycleTab(0, 4, true), 3);
|
||
assert.strictEqual(ui.cycleTab(2, 5, true), 1);
|
||
assert.strictEqual(ui.cycleTab(0, 0, false), 0);
|
||
|
||
assert.strictEqual(ui.drawerEscAction(1), "close");
|
||
assert.strictEqual(ui.drawerEscAction(0), "close");
|
||
assert.strictEqual(ui.drawerEscAction(2), "back");
|
||
assert.strictEqual(ui.drawerEscAction(3), "back");
|
||
|
||
const abs = ui.amountWithCurrency(1280, "CNY");
|
||
assert.ok(abs.includes("CNY"));
|
||
assert.ok(abs.includes("1,280.00"));
|
||
assert.ok(!abs.includes("+"));
|
||
assert.ok(!abs.includes("−"));
|
||
|
||
const repay = ui.amountWithCurrency(3200000, "CNY", { signed: true, negative: true });
|
||
assert.ok(repay.includes("−"));
|
||
assert.ok(!repay.includes("+"));
|
||
assert.ok(repay.includes("3,200,000.00"));
|
||
|
||
assert.strictEqual(ui.resultDirection(10).label, "应收");
|
||
assert.strictEqual(ui.resultDirection(-10).label, "应付");
|
||
assert.strictEqual(ui.resultDirection(0).label, "持平");
|
||
|
||
assert.strictEqual(ui.isCompactAmount(1280), false);
|
||
assert.strictEqual(ui.isCompactAmount(999999999), false);
|
||
assert.strictEqual(ui.isCompactAmount(1000000000), true);
|
||
assert.strictEqual(ui.isCompactAmount("123456789012345"), true);
|
||
assert.ok(ui.amountWithCurrency("123456789012345", "CNY").includes("is-compact"));
|
||
assert.ok(!ui.amountWithCurrency(1280, "CNY").includes("is-compact"));
|
||
|
||
assert.strictEqual(ui.cashDirectionLabel("outgoing"), "转出");
|
||
assert.strictEqual(ui.cashDirectionLabel("incoming"), "转入");
|
||
assert.strictEqual(ui.relatedFlowLabel(null), "无关联流水");
|
||
assert.strictEqual(ui.relatedFlowLabel(""), "无关联流水");
|
||
assert.strictEqual(ui.relatedFlowLabel("42"), "42");
|
||
|
||
const subjectFields = ui.auditEvidenceFields("subject-review", {
|
||
direction: "outgoing",
|
||
effectiveAt: "2026-07-18T09:00:00",
|
||
amount: "600",
|
||
currency: "CNY",
|
||
summary: "资金调拨",
|
||
});
|
||
assert.deepStrictEqual(subjectFields.map((item) => item[0]), ["方向", "日期", "金额", "摘要"]);
|
||
assert.strictEqual(subjectFields[0][1], "转出");
|
||
|
||
const manualFields = ui.auditEvidenceFields("manual-review", {
|
||
counterpartyName: "乙公司",
|
||
direction: "incoming",
|
||
relatedSourceRowId: "",
|
||
submittedBy: "出纳甲",
|
||
attachmentName: "",
|
||
amount: "80",
|
||
currency: "CNY",
|
||
summary: "补记",
|
||
});
|
||
assert.deepStrictEqual(
|
||
manualFields.map((item) => item[0]),
|
||
["对方公司名", "方向", "关联流水号", "提交人", "附件", "摘要", "金额"],
|
||
);
|
||
assert.strictEqual(manualFields[0][1], "乙公司");
|
||
assert.strictEqual(manualFields[1][1], "转入");
|
||
assert.strictEqual(manualFields[2][1], "无关联流水");
|
||
|
||
assert.ok(ui.accountCell({ visibility: "visible", label: "中信 5316" }).includes("中信 5316"));
|
||
assert.ok(ui.accountCell({ visibility: "masked" }).includes("按对方授权不可见"));
|
||
assert.ok(ui.accountCell({ visibility: "missing" }).includes("源行缺失"));
|
||
|
||
console.log("b44_ui_check ok");
|