Files
X-Financial/web/tests/spreadsheet-change-records.test.mjs

93 lines
2.6 KiB
JavaScript
Raw Permalink Normal View History

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()