feat(finance): 完成成本快照运行层、销售事实与人工支出登记
迁移 108-111:快照业务时间与预估转实际、销售事实表、系统成本项、公司人工支出登记。接单平台按工单实际 reward 入账;人工支出支持登记/审批/驳回/报销并写 actual 快照。新增销售毛利页、人工支出页与订单入口。
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import test from 'node:test'
|
||||
|
||||
import { diffDays, resolveFinanceDateRange, shiftDate } from './finance-date-range.js'
|
||||
|
||||
test('resolveFinanceDateRange uses the requested date range', () => {
|
||||
const range = resolveFinanceDateRange({ dateFrom: '2026-10-01', dateTo: '2026-10-14' })
|
||||
assert.deepEqual(range, { fromDate: '2026-10-01', toDate: '2026-10-14' })
|
||||
})
|
||||
|
||||
test('resolveFinanceDateRange rejects reversed and oversized ranges', () => {
|
||||
assert.throws(() => resolveFinanceDateRange({ dateFrom: '2026-10-14', dateTo: '2026-10-01' }))
|
||||
assert.throws(() =>
|
||||
resolveFinanceDateRange({ dateFrom: '2025-01-01', dateTo: '2026-10-01' }, { maxDays: 400 }),
|
||||
)
|
||||
})
|
||||
|
||||
test('resolveFinanceDateRange defaults to the recent N calendar days', () => {
|
||||
const range = resolveFinanceDateRange({ dateTo: '2026-10-22' }, { defaultDays: 7 })
|
||||
assert.deepEqual(range, { fromDate: '2026-10-16', toDate: '2026-10-22' })
|
||||
assert.equal(diffDays(range.fromDate, range.toDate) + 1, 7)
|
||||
})
|
||||
|
||||
test('shiftDate crosses months without timezone drift', () => {
|
||||
assert.equal(shiftDate('2026-03-01', -1), '2026-02-28')
|
||||
assert.equal(shiftDate('2026-12-31', 1), '2027-01-01')
|
||||
})
|
||||
Reference in New Issue
Block a user