Jest .toThrow
не реагирует на ошибку throw ('некоторый текст')
Этот код выдает исключение
if (!['diff', 'plain', 'json'].includes(format.toLowerCase())) {
throw Error('Wrong format');
}
Я пытаюсь обработать его в тестах с
test('tree, yml, plan, Exception_', () => {
const fileName1 = '__tests__/__fixtures__/before.json';
const fileName2 = '__tests__/__fixtures__/after.jso';
expect(genDiff(fileName1, fileName2)).toThrow();
});
Но этот тест не пройден
Это странно, потому что это обрабатывается правильно:
test('t', () => {
expect(() => {
throw Error();
}).toThrow();
});
Как решить эту проблему?
Вот функция
const genDiff = (fileName1, fileName2, format = 'diff') => {
const wrongFiles = checkForWrongFiles([fileName1, fileName2]);
if (wrongFiles.length !== 0) {
const errorMessage = `Could not find this files:\n ${wrongFiles.join('\n')}`;
throw errorMessage;
}
if (!['diff', 'plain', 'json'].includes(format.toLowerCase())) {
throw Error('Wrong format');
}
...
return result;
};