test: 添加规则服务与电子表格变更记录的测试用例

- AgentAssetService 测试覆盖版本创建、送审、审核通过等流程
- 新增电子表格变更记录的前端测试
This commit is contained in:
caoxiaozhu
2026-05-18 09:44:04 +00:00
parent 5106d286a1
commit 29df4eee3b
2 changed files with 196 additions and 0 deletions

View File

@@ -0,0 +1,92 @@
import assert from 'node:assert/strict'
import {
buildSpreadsheetChangeRecords,
resolveSpreadsheetOperationLabel
} from '../src/views/scripts/spreadsheetChangeRecords.js'
function testResolveSpreadsheetOperationLabelFromHistorySource() {
assert.equal(
resolveSpreadsheetOperationLabel({
spreadsheetMeta: { source: 'onlyoffice' },
note: 'ONLYOFFICE 编辑保存规则表。'
}),
'在线编辑保存'
)
assert.equal(
resolveSpreadsheetOperationLabel({
spreadsheetMeta: { source: 'content-import' }
}),
'导入表格'
)
}
function testBuildSpreadsheetChangeRecordsPrefersUnpublishedHistory() {
const records = buildSpreadsheetChangeRecords({
publishedVersion: 'v1.0.0',
history: [
{
version: 'v1.0.1',
note: 'ONLYOFFICE 编辑保存规则表。',
createdBy: '张三',
createdAt: '2026-05-18T10:00:00Z',
isWorking: true,
spreadsheetMeta: { source: 'onlyoffice' }
},
{
version: 'v1.0.0',
note: '首个上线版本',
createdBy: '系统',
createdAt: '2026-05-18T09:00:00Z',
isWorking: false,
spreadsheetMeta: { source: 'upload' }
}
]
})
assert.deepEqual(
records.map((item) => [item.version, item.operationLabel]),
[['v1.0.1', '在线编辑保存']]
)
}
function testBuildSpreadsheetChangeRecordsKeepsPendingLocalEditFirst() {
const records = buildSpreadsheetChangeRecords({
publishedVersion: 'v1.0.0',
localRecords: [
{
version: 'v1.0.1',
operationLabel: '编辑中',
operationActor: '李四',
note: '检测到未保存的表格改动,保存后会生成新版本并可查看差异。',
time: '2026-05-18T10:30:00Z',
isPendingLocalEdit: true,
disabledReason: '当前是本地未保存修改,保存后才会生成可对比的版本。'
}
],
history: [
{
version: 'v1.0.1',
note: 'ONLYOFFICE 编辑保存规则表。',
createdBy: '李四',
createdAt: '2026-05-18T10:00:00Z',
isWorking: true,
spreadsheetMeta: { source: 'onlyoffice' }
}
]
})
assert.equal(records[0].operationLabel, '编辑中')
assert.equal(records[0].isPendingLocalEdit, true)
assert.equal(records[1].operationLabel, '在线编辑保存')
}
function run() {
testResolveSpreadsheetOperationLabelFromHistorySource()
testBuildSpreadsheetChangeRecordsPrefersUnpublishedHistory()
testBuildSpreadsheetChangeRecordsKeepsPendingLocalEditFirst()
console.log('spreadsheet change record tests passed')
}
run()