"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.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");