forked from jestjs/jest
-
Notifications
You must be signed in to change notification settings - Fork 0
/
errorWithCause.test.js
45 lines (39 loc) · 994 Bytes
/
errorWithCause.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
'use strict';
function buildErrorWithCause(message: string, opts: {cause: unknown}): Error {
const error = new Error(message, opts);
if (opts.cause !== error.cause) {
// Error with cause not supported in legacy versions of node, we just polyfill it
Object.assign(error, opts);
}
return error;
}
function g() {
throw new Error('error during g');
}
function f() {
try {
g();
} catch (err) {
throw buildErrorWithCause('error during f', {cause: err});
}
}
test('error with cause in test', () => {
f();
});
describe('describe block', () => {
it('error with cause in describe/it', () => {
f();
});
it('error with string cause in describe/it', () => {
throw buildErrorWithCause('with string cause', {
cause: 'here is the cause',
});
});
});