UNPKG

2.25 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.renderHook = renderHook;
7exports.testHook = testHook;
8Object.defineProperty(exports, "cleanup", {
9 enumerable: true,
10 get: function get() {
11 return _reactTestingLibrary.cleanup;
12 }
13});
14Object.defineProperty(exports, "act", {
15 enumerable: true,
16 get: function get() {
17 return _reactTestingLibrary.act;
18 }
19});
20
21var _react = _interopRequireDefault(require("react"));
22
23var _reactTestingLibrary = require("react-testing-library");
24
25function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
27function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
28
29function TestHook(_ref) {
30 var callback = _ref.callback,
31 hookProps = _ref.hookProps,
32 children = _ref.children;
33 children(callback(hookProps));
34 return null;
35}
36
37function renderHook(callback, _ref2) {
38 if (_ref2 === void 0) {
39 _ref2 = {};
40 }
41
42 var _ref3 = _ref2,
43 initialProps = _ref3.initialProps,
44 options = _objectWithoutPropertiesLoose(_ref3, ["initialProps"]);
45
46 var result = {
47 current: null
48 };
49 var hookProps = {
50 current: initialProps
51 };
52
53 var toRender = function toRender() {
54 return _react.default.createElement(TestHook, {
55 callback: callback,
56 hookProps: hookProps.current
57 }, function (res) {
58 result.current = res;
59 });
60 };
61
62 var _render = (0, _reactTestingLibrary.render)(toRender(), options),
63 unmount = _render.unmount,
64 rerenderComponent = _render.rerender;
65
66 return {
67 result: result,
68 unmount: unmount,
69 rerender: function rerender(newProps) {
70 if (newProps === void 0) {
71 newProps = hookProps.current;
72 }
73
74 hookProps.current = newProps;
75 rerenderComponent(toRender());
76 }
77 };
78}
79
80function testHook() {
81 console.warn('`testHook` has been deprecated and will be removed in a future release. Please use `renderHook` instead.');
82 return renderHook.apply(void 0, arguments);
83}
\No newline at end of file