93 lines
2.6 KiB
JavaScript
93 lines
2.6 KiB
JavaScript
|
|
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()
|