GuDingZiChan/frontend/scripts/test-notification-quick-return.ts
WuYongJie 0dc3c09315 feat(资产与打印): 提交近期借还盘点与打印助手源码
- 提交借用单缺失异常处理、扫码借还搜索与站内消息快捷处理源码
- 提交盘点范围、多终端打印、组织同步与认证模式相关源码
- 提交 .NET/Node 打印助手及版本清单源码
2026-03-27 20:18:31 +08:00

77 lines
2.1 KiB
TypeScript

import assert from 'node:assert/strict'
import type { BorrowRecord, HrSyncBorrowedAssetPreview } from '../src/types.ts'
import {
buildNotificationQuickReturnAssetKey,
findNotificationQuickReturnRecord
} from '../src/views/notifications/notificationQuickReturn.ts'
const assetWithBorrowRecord: HrSyncBorrowedAssetPreview = {
equipmentCode: 'JS-PC-3001',
equipmentName: '主机',
borrowRecordId: 901
}
const assetWithoutBorrowRecord: HrSyncBorrowedAssetPreview = {
equipmentCode: 'JS-MON-2001',
equipmentName: '显示器'
}
const borrowRecords: BorrowRecord[] = [
{
id: 901,
equipment_id: 3001,
equipment_code: 'JS-PC-3001',
person_id: 11,
person_name: '张亮',
person_nickname: '三藏',
borrow_time: '2026-03-26T09:00:00.000Z',
status: '已借出',
created_at: '2026-03-26T09:00:00.000Z',
updated_at: '2026-03-26T09:00:00.000Z'
},
{
id: 902,
equipment_id: 3001,
equipment_code: 'JS-PC-3001',
person_id: 12,
person_name: '李想',
person_nickname: '小李',
borrow_time: '2026-03-26T10:00:00.000Z',
status: '已借出',
created_at: '2026-03-26T10:00:00.000Z',
updated_at: '2026-03-26T10:00:00.000Z'
}
]
assert.equal(
buildNotificationQuickReturnAssetKey(assetWithBorrowRecord),
'borrow-record:901',
'带借用记录编号的资产应优先用借用记录生成稳定 key'
)
assert.equal(
buildNotificationQuickReturnAssetKey(assetWithoutBorrowRecord),
'equipment:JS-MON-2001',
'没有借用记录编号时应回退到资产编码'
)
assert.equal(
findNotificationQuickReturnRecord(borrowRecords, assetWithBorrowRecord)?.id,
901,
'带借用记录编号时应优先命中对应借用记录'
)
assert.equal(
findNotificationQuickReturnRecord(borrowRecords, assetWithoutBorrowRecord),
null,
'存在多条借用记录且没有指定借用记录编号时,不应擅自自动选中'
)
assert.equal(
findNotificationQuickReturnRecord([borrowRecords[0]], assetWithoutBorrowRecord)?.id,
901,
'只有一条借用记录时,应允许自动选中'
)
console.log('notification quick return tests: ok')