Это мой класс контроллера:
@Put()
async updateUser(@BodyToClass() user: UpsertUserDto): Promise<UpsertUserDto> {
try {
return await this.userService.updateUser(user);
} catch (e) {
throw new HttpException(e.message, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
Это мой тестовый класс Usercontroller.spec, я пишу тестовые примеры для обработки исключений для отрицательных случаев.
Во время работы получаю ошибку в этой строке:
".then(() => done.fail('Client controller should return INTERNAL_SERVER_ERROR 500 '))
Вот мое сообщение об ошибке от Jest:
в Env.fail (../node_modules/jest-jasmine2/build/jasmine/Env.js:722:61) в user/user.controller.spec.ts:51:33 в Object. (пользователь/user.controller.spec.ts:50:15)
Я не уверен, где я делаю ошибку или есть ли другой способ обработать исключение вnesjs.
it('should throw INTERNAL_SERVER_ERROR if user not update', async (done) => {
const expectedResult = undefined;
const testuser = new UpsertUserDto();
testuser.id = '123';
jest.spyOn(userservice, 'updateUser').mockResolvedValue(expectedResult);
await usercontroller.updateUser(testuser)
.then(() => done.fail('Client controller should return INTERNAL_SERVER_ERROR 500 '))
.catch((error) => {
expect(error.status).toBe(500);
expect(error.message).toMatchObject({error: ' INTERNAL_SERVER_ERROR', statusCode: 500});
done();
});
});