import { normalizeTaskDetailPrivacyFields } from '@/lib/task-detail-privacy-fields' describe('task-detail privacy fields', () => { test('缺省值回填为新品公开', () => { expect(normalizeTaskDetailPrivacyFields({})).toEqual({ taskDetailDemandType: '新品', taskDetailPrivate: false, }) expect(normalizeTaskDetailPrivacyFields({ taskDetailDemandType: null, taskDetailPrivate: null, })).toEqual({ taskDetailDemandType: '新品', taskDetailPrivate: false, }) }) test('优化需求允许私密', () => { expect(normalizeTaskDetailPrivacyFields({ taskDetailDemandType: '优化', taskDetailPrivate: true, })).toEqual({ taskDetailDemandType: '优化', taskDetailPrivate: true, }) }) test.each([ [{ taskDetailDemandType: '' }, '需求类型只能是“新品”或“优化”'], [{ taskDetailDemandType: '升级' }, '需求类型只能是“新品”或“优化”'], [{ taskDetailPrivate: 'true' }, '私密标记只能传 true 或 false'], [{ taskDetailDemandType: '新品', taskDetailPrivate: true }, '仅优化需求支持私密上传'], ])('非法输入会抛出明确中文错误: %j', (input, message) => { expect(() => normalizeTaskDetailPrivacyFields(input)).toThrow(message) }) })