admin-vue3/scripts/reviewMeetingEditHelpers.ch...

54 lines
1.4 KiB
TypeScript

import assert from 'node:assert/strict'
import {
buildProjectTimeBatchPayload,
mapCopiedProjectItems,
mapPersistedProjectItems,
shouldSyncPersistedProjectTimes
} from '../src/views/review/meeting/meetingEditHelpers'
const baseProject = {
id: 101,
seqNo: 1,
startTime: '09:00',
endTime: '09:15',
agendaCategory: '项目申报论证',
projectTitle: '项目A',
reporter: '张三',
reporterUnit: '软件学院',
reviewDate: '2026-04-01'
}
const persistedProjects = mapPersistedProjectItems([baseProject])
assert.equal(
persistedProjects[0].sourceProjectId,
undefined,
'编辑已有会议时,不应该把现有项目 id 回填到 sourceProjectId'
)
const copiedProjects = mapCopiedProjectItems([baseProject])
assert.equal(copiedProjects[0].sourceProjectId, 101, '复制会议时,应该保留源项目 id 用于首次复制资料')
assert.equal(
shouldSyncPersistedProjectTimes({
isEdit: true,
isProjectsModified: false,
originalMeetingStart: 1711942800000,
currentMeetingStart: 1711944600000,
projects: [baseProject]
}),
true,
'编辑已有会议且仅修改会议开始时间时,应该同步已落库项目时间'
)
assert.deepEqual(buildProjectTimeBatchPayload([baseProject]), {
items: [
{
id: 101,
startTime: '09:00',
endTime: '09:15'
}
]
})
console.log('reviewMeetingEditHelpers checks passed')