/
ReactErrorUtils-test.js
71 lines (62 loc) · 2.16 KB
/
ReactErrorUtils-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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/**
* Copyright 2014-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
* @emails react-core
*/
'use strict';
var ReactErrorUtils;
describe('ReactErrorUtils', () => {
beforeEach(() => {
ReactErrorUtils = require('ReactErrorUtils');
})
describe('invokeGuardedCallbackWithCatch', () => {
it('should call the callback with only the passed argument', () => {
var callback = jest.fn();
ReactErrorUtils.invokeGuardedCallbackWithCatch('foo', callback, 'arg');
expect(callback).toBeCalledWith('arg');
})
it('should catch errors', () => {
var callback = function() {
throw new Error('foo');
};
expect(
() => ReactErrorUtils.invokeGuardedCallbackWithCatch('foo', callback)
).not.toThrow()
})
});
describe('rethrowCaughtError', () => {
it('should rethrow caught errors', () => {
var err = new Error('foo');
var callback = function() { throw err };
ReactErrorUtils.invokeGuardedCallbackWithCatch('foo', callback);
expect(() => ReactErrorUtils.rethrowCaughtError()).toThrow(err);
});
});
describe('invokeGuardedCallback', () => {
it('should call the callback with only the passed argument', () => {
var callback = jest.fn();
ReactErrorUtils.invokeGuardedCallback('foo', callback, 'arg');
expect(callback).toBeCalledWith('arg');
});
it('should use invokeGuardedCallbackWithCatch in production', () => {
expect(ReactErrorUtils.invokeGuardedCallback).not.toEqual(
ReactErrorUtils.invokeGuardedCallbackWithCatch
);
__DEV__ = false;
var oldProcess = process;
global.process = {env: {NODE_ENV: 'production'}};
jest.resetModuleRegistry();
ReactErrorUtils = require('ReactErrorUtils');
expect(ReactErrorUtils.invokeGuardedCallback).toEqual(
ReactErrorUtils.invokeGuardedCallbackWithCatch
);
__DEV__ = true;
global.process = oldProcess;
});
});
});