fix(archive): 档案聚合接口 null 字段归一化为空串
避免可选列缺省返回 null 导致前端响应校验报「字段格式异常」
This commit is contained in:
@@ -36,4 +36,54 @@ describe('ArchiveService.getProfile', () => {
|
||||
expect(response).toMatchObject({ student, result, attendances: [] });
|
||||
expect(response).not.toHaveProperty('resultArchive');
|
||||
});
|
||||
|
||||
it('将学生可空字符串字段归一化为空串,避免前端校验报格式异常', async () => {
|
||||
const student = {
|
||||
id: 7,
|
||||
name: '测试学生',
|
||||
phone: null,
|
||||
idNumber: null,
|
||||
studentNo: null,
|
||||
gender: null,
|
||||
ethnicity: null,
|
||||
emergencyContact: null,
|
||||
emergencyPhone: null,
|
||||
supervisor: null,
|
||||
};
|
||||
const emptyRepos = {
|
||||
profile: { findOne: jest.fn().mockResolvedValue(null) },
|
||||
enrollment: { find: jest.fn().mockResolvedValue([]) },
|
||||
exam: { find: jest.fn().mockResolvedValue([]) },
|
||||
learning: { find: jest.fn().mockResolvedValue([]) },
|
||||
result: { findOne: jest.fn().mockResolvedValue(null) },
|
||||
attachment: { find: jest.fn().mockResolvedValue([]) },
|
||||
attendance: { find: jest.fn().mockResolvedValue([]) },
|
||||
};
|
||||
const service = new ArchiveService(
|
||||
{ findOne: jest.fn().mockResolvedValue(student) } as never,
|
||||
emptyRepos.profile as never,
|
||||
emptyRepos.enrollment as never,
|
||||
emptyRepos.exam as never,
|
||||
emptyRepos.learning as never,
|
||||
emptyRepos.result as never,
|
||||
emptyRepos.attachment as never,
|
||||
emptyRepos.attendance as never,
|
||||
{} as never,
|
||||
);
|
||||
|
||||
const response = await service.getProfile(7);
|
||||
|
||||
expect(response.student).toMatchObject({
|
||||
id: 7,
|
||||
name: '测试学生',
|
||||
phone: '',
|
||||
idNumber: '',
|
||||
studentNo: '',
|
||||
gender: '',
|
||||
ethnicity: '',
|
||||
emergencyContact: '',
|
||||
emergencyPhone: '',
|
||||
supervisor: '',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user