UNPKG

1.45 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = until;
9
10var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
12var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
14function shallowRecursively(wrapper, selector, _ref) {
15 var context = _ref.context,
16 other = (0, _objectWithoutProperties2.default)(_ref, ["context"]);
17
18 if (wrapper.isEmptyRender() || typeof wrapper.getElement().type === 'string') {
19 return wrapper;
20 }
21
22 var newContext = context;
23 var instance = wrapper.root().instance(); // The instance can be null with a stateless functional component and react >= 16.
24
25 if (instance && instance.getChildContext) {
26 newContext = (0, _extends2.default)({}, context, {}, instance.getChildContext());
27 }
28
29 var nextWrapper = wrapper.shallow((0, _extends2.default)({
30 context: newContext
31 }, other));
32
33 if (selector && wrapper.is(selector)) {
34 return nextWrapper;
35 }
36
37 return shallowRecursively(nextWrapper, selector, {
38 context: newContext
39 });
40}
41
42function until(selector) {
43 var _this = this;
44
45 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
46 return this.single('until', function () {
47 return shallowRecursively(_this, selector, options);
48 });
49}
\No newline at end of file