Попытка научиться писать лучшие тесты с помощью Jest / Typescript.Я хотел бы убедиться, что могу проверить на наличие ошибки.
Я могу создать фиктивный метод, который будет возвращать ожидаемый массив данных, однако проверка на наличие ошибок оказывается трудной.
//program.ts
const listStacks = async (cf: CloudFormation): Promise<StackSummaries> => {
try {
const result = await cf.listStacks().promise();
if (result.StackSummaries) {
return result.StackSummaries;
}
return [];
} catch(e) {
console.log(e);
throw e;
}
Вот мой тест ниже, обратите внимание, что я попытался вернуть новую ошибку вместо броска, но она тоже не работает.
//program.test.js
it('handles errors gracefully', async () => {
expect.assertions(1);
const cfMock = {
listStacks: (): any => ({
promise: async () => {
throw new Error('ohh NOO!');
}
})
}
expect(() => listStacks(cfMock as CloudFormation)).toThrow();
Jest возвращает это:
expect(received).toThrow()
Received function did not throw .