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