54 lines
1.4 KiB
TypeScript
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')
|