feat: 完善文档中心与报销申请交互及侧边栏重构
后端优化编排器报销查询和本体检测精度,增强报销单草稿保 存和附件回填逻辑,前端重构侧边栏组件支持折叠和图标导 航,完善文档中心状态筛选和详情提示,报销创建和审批详情 页优化会话管理和费用明细交互,新增助手应用服务和预设动 作工具函数,补充单元测试覆盖。
This commit is contained in:
60
web/tests/document-center-new-state.test.mjs
Normal file
60
web/tests/document-center-new-state.test.mjs
Normal file
@@ -0,0 +1,60 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import test from 'node:test'
|
||||
|
||||
import {
|
||||
countNewDocuments,
|
||||
isNewDocument,
|
||||
markDocumentViewed,
|
||||
readDocumentScope,
|
||||
readViewedDocumentKeys,
|
||||
resolveDocumentNewKey,
|
||||
writeDocumentScope
|
||||
} from '../src/utils/documentCenterNewState.js'
|
||||
|
||||
function createMemoryStorage(initial = {}) {
|
||||
const store = new Map(Object.entries(initial))
|
||||
return {
|
||||
getItem(key) {
|
||||
return store.has(key) ? store.get(key) : null
|
||||
},
|
||||
setItem(key, value) {
|
||||
store.set(key, value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
test('document center new state resolves source scoped document keys', () => {
|
||||
assert.equal(resolveDocumentNewKey({ source: 'archive', claimId: 'claim-1' }), 'archive:claim-1')
|
||||
assert.equal(resolveDocumentNewKey({ source: 'approval', documentNo: 'EXP-1' }), 'approval:EXP-1')
|
||||
})
|
||||
|
||||
test('document center new state counts unseen documents and persists viewed rows', () => {
|
||||
const storage = createMemoryStorage()
|
||||
const rows = [
|
||||
{ source: 'archive', claimId: 'claim-1' },
|
||||
{ source: 'archive', claimId: 'claim-2' }
|
||||
]
|
||||
let viewedKeys = readViewedDocumentKeys(storage)
|
||||
|
||||
assert.equal(countNewDocuments(rows, viewedKeys), 2)
|
||||
assert.equal(isNewDocument(rows[0], viewedKeys), true)
|
||||
|
||||
viewedKeys = markDocumentViewed(rows[0], viewedKeys, storage)
|
||||
|
||||
assert.equal(countNewDocuments(rows, viewedKeys), 1)
|
||||
assert.equal(isNewDocument(rows[0], viewedKeys), false)
|
||||
assert.deepEqual([...readViewedDocumentKeys(storage)], ['archive:claim-1'])
|
||||
})
|
||||
|
||||
test('document center scope state restores only allowed tabs', () => {
|
||||
const storage = createMemoryStorage()
|
||||
const scopes = ['全部', '申请单', '报销单', '审核单', '归档']
|
||||
|
||||
assert.equal(readDocumentScope('全部', scopes, storage), '全部')
|
||||
|
||||
writeDocumentScope('归档', scopes, storage)
|
||||
assert.equal(readDocumentScope('全部', scopes, storage), '归档')
|
||||
|
||||
writeDocumentScope('不存在', scopes, storage)
|
||||
assert.equal(readDocumentScope('全部', scopes, storage), '归档')
|
||||
})
|
||||
Reference in New Issue
Block a user