gongxiangp2/lib/__tests__/task-detail-privacy-fields.test.ts

38 lines
1.3 KiB
TypeScript

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