38 lines
1.3 KiB
TypeScript
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)
|
|
})
|
|
})
|