@pie-lib/test-utils 0.2.33 → 0.4.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/NEXT.CHANGELOG.json +1 -0
- package/lib/__tests__/index.test.js +100 -0
- package/lib/index.js +1 -1
- package/package.json +2 -2
- package/src/__tests__/index.test.js +45 -0
- package/.travis.yml +0 -7
- package/README.md +0 -23
- package/lib/index.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.4.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/test-utils@0.2.33...@pie-lib/test-utils@0.4.0-beta.0) (2025-07-15)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-lib/test-utils
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [0.3.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/test-utils@0.2.33...@pie-lib/test-utils@0.3.0-beta.0) (2025-07-15)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-lib/test-utils
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## [0.2.33](https://github.com/pie-framework/pie-lib/compare/@pie-lib/test-utils@0.2.32...@pie-lib/test-utils@0.2.33) (2023-06-24)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @pie-lib/test-utils
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
|
|
13
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
+
|
|
15
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
16
|
+
|
|
17
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
18
|
+
|
|
19
|
+
var React = _interopRequireWildcard(require("react"));
|
|
20
|
+
|
|
21
|
+
var _index = require("../index");
|
|
22
|
+
|
|
23
|
+
var _enzyme = _interopRequireDefault(require("enzyme"));
|
|
24
|
+
|
|
25
|
+
var _enzymeAdapterReact = _interopRequireDefault(require("enzyme-adapter-react-16"));
|
|
26
|
+
|
|
27
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
28
|
+
|
|
29
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
30
|
+
|
|
31
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
32
|
+
|
|
33
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
34
|
+
|
|
35
|
+
_enzyme["default"].configure({
|
|
36
|
+
adapter: new _enzymeAdapterReact["default"]()
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
describe('test-utils', function () {
|
|
40
|
+
describe('shallowChild', function () {
|
|
41
|
+
function simpleHoC(WrappedComponent) {
|
|
42
|
+
return /*#__PURE__*/function (_React$Component) {
|
|
43
|
+
(0, _inherits2["default"])(_class, _React$Component);
|
|
44
|
+
|
|
45
|
+
var _super = _createSuper(_class);
|
|
46
|
+
|
|
47
|
+
function _class() {
|
|
48
|
+
(0, _classCallCheck2["default"])(this, _class);
|
|
49
|
+
return _super.apply(this, arguments);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
(0, _createClass2["default"])(_class, [{
|
|
53
|
+
key: "render",
|
|
54
|
+
value: function render() {
|
|
55
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(WrappedComponent, (0, _extends2["default"])({
|
|
56
|
+
oneMoreProp: "hello"
|
|
57
|
+
}, this.props)));
|
|
58
|
+
}
|
|
59
|
+
}]);
|
|
60
|
+
return _class;
|
|
61
|
+
}(React.Component);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
var SimpleComponent = /*#__PURE__*/function (_React$Component2) {
|
|
65
|
+
(0, _inherits2["default"])(SimpleComponent, _React$Component2);
|
|
66
|
+
|
|
67
|
+
var _super2 = _createSuper(SimpleComponent);
|
|
68
|
+
|
|
69
|
+
function SimpleComponent() {
|
|
70
|
+
(0, _classCallCheck2["default"])(this, SimpleComponent);
|
|
71
|
+
return _super2.apply(this, arguments);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
(0, _createClass2["default"])(SimpleComponent, [{
|
|
75
|
+
key: "render",
|
|
76
|
+
value: function render() {
|
|
77
|
+
return /*#__PURE__*/React.createElement("span", null, "My simple component will get wrapped");
|
|
78
|
+
}
|
|
79
|
+
}]);
|
|
80
|
+
return SimpleComponent;
|
|
81
|
+
}(React.Component);
|
|
82
|
+
|
|
83
|
+
it('moves past HoC and returns shallow rendered component using enzyme', function () {
|
|
84
|
+
var wrapper = (0, _index.shallowChild)(simpleHoC(SimpleComponent), null, 1);
|
|
85
|
+
var shallowComponent = wrapper();
|
|
86
|
+
expect(shallowComponent.find(SimpleComponent).length).toEqual(1);
|
|
87
|
+
expect(shallowComponent.props().children.props.oneMoreProp).toEqual('hello');
|
|
88
|
+
expect(shallowComponent.html().includes('span')).toEqual(true);
|
|
89
|
+
});
|
|
90
|
+
it('overwrites specific props when passed into the closure', function () {
|
|
91
|
+
var wrapper = (0, _index.shallowChild)(simpleHoC(SimpleComponent), null, 1);
|
|
92
|
+
var shallowComponent = wrapper({
|
|
93
|
+
oneMoreProp: 'helloToo'
|
|
94
|
+
});
|
|
95
|
+
expect(shallowComponent.find(SimpleComponent).length).toEqual(1);
|
|
96
|
+
expect(shallowComponent.props().children.props.oneMoreProp).toEqual('helloToo');
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vaW5kZXgudGVzdC5qcyJdLCJuYW1lcyI6WyJFbnp5bWUiLCJjb25maWd1cmUiLCJhZGFwdGVyIiwiQWRhcHRlciIsImRlc2NyaWJlIiwic2ltcGxlSG9DIiwiV3JhcHBlZENvbXBvbmVudCIsInByb3BzIiwiUmVhY3QiLCJDb21wb25lbnQiLCJTaW1wbGVDb21wb25lbnQiLCJpdCIsIndyYXBwZXIiLCJzaGFsbG93Q29tcG9uZW50IiwiZXhwZWN0IiwiZmluZCIsImxlbmd0aCIsInRvRXF1YWwiLCJjaGlsZHJlbiIsIm9uZU1vcmVQcm9wIiwiaHRtbCIsImluY2x1ZGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBQSxtQkFBT0MsU0FBUCxDQUFpQjtBQUFFQyxFQUFBQSxPQUFPLEVBQUUsSUFBSUMsOEJBQUo7QUFBWCxDQUFqQjs7QUFFQUMsUUFBUSxDQUFDLFlBQUQsRUFBZSxZQUFNO0FBQzNCQSxFQUFBQSxRQUFRLENBQUMsY0FBRCxFQUFpQixZQUFNO0FBQzdCLGFBQVNDLFNBQVQsQ0FBbUJDLGdCQUFuQixFQUFxQztBQUNuQztBQUFBOztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQSxpQkFDRSxrQkFBUztBQUNQLGdDQUNFLDhDQUNFLG9CQUFDLGdCQUFEO0FBQWtCLGNBQUEsV0FBVyxFQUFDO0FBQTlCLGVBQTBDLEtBQUtDLEtBQS9DLEVBREYsQ0FERjtBQUtEO0FBUEg7QUFBQTtBQUFBLFFBQXFCQyxLQUFLLENBQUNDLFNBQTNCO0FBU0Q7O0FBWDRCLFFBYXZCQyxlQWJ1QjtBQUFBOztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQSxlQWMzQixrQkFBUztBQUNQLDhCQUFPLHlFQUFQO0FBQ0Q7QUFoQjBCO0FBQUE7QUFBQSxNQWFDRixLQUFLLENBQUNDLFNBYlA7O0FBbUI3QkUsSUFBQUEsRUFBRSxDQUFDLG9FQUFELEVBQXVFLFlBQU07QUFDN0UsVUFBTUMsT0FBTyxHQUFHLHlCQUFhUCxTQUFTLENBQUNLLGVBQUQsQ0FBdEIsRUFBeUMsSUFBekMsRUFBK0MsQ0FBL0MsQ0FBaEI7QUFDQSxVQUFNRyxnQkFBZ0IsR0FBR0QsT0FBTyxFQUFoQztBQUVBRSxNQUFBQSxNQUFNLENBQUNELGdCQUFnQixDQUFDRSxJQUFqQixDQUFzQkwsZUFBdEIsRUFBdUNNLE1BQXhDLENBQU4sQ0FBc0RDLE9BQXRELENBQThELENBQTlEO0FBQ0FILE1BQUFBLE1BQU0sQ0FBQ0QsZ0JBQWdCLENBQUNOLEtBQWpCLEdBQXlCVyxRQUF6QixDQUFrQ1gsS0FBbEMsQ0FBd0NZLFdBQXpDLENBQU4sQ0FBNERGLE9BQTVELENBQW9FLE9BQXBFO0FBQ0FILE1BQUFBLE1BQU0sQ0FBQ0QsZ0JBQWdCLENBQUNPLElBQWpCLEdBQXdCQyxRQUF4QixDQUFpQyxNQUFqQyxDQUFELENBQU4sQ0FBaURKLE9BQWpELENBQXlELElBQXpEO0FBQ0QsS0FQQyxDQUFGO0FBU0FOLElBQUFBLEVBQUUsQ0FBQyx3REFBRCxFQUEyRCxZQUFNO0FBQ2pFLFVBQU1DLE9BQU8sR0FBRyx5QkFBYVAsU0FBUyxDQUFDSyxlQUFELENBQXRCLEVBQXlDLElBQXpDLEVBQStDLENBQS9DLENBQWhCO0FBQ0EsVUFBTUcsZ0JBQWdCLEdBQUdELE9BQU8sQ0FBQztBQUFFTyxRQUFBQSxXQUFXLEVBQUU7QUFBZixPQUFELENBQWhDO0FBRUFMLE1BQUFBLE1BQU0sQ0FBQ0QsZ0JBQWdCLENBQUNFLElBQWpCLENBQXNCTCxlQUF0QixFQUF1Q00sTUFBeEMsQ0FBTixDQUFzREMsT0FBdEQsQ0FBOEQsQ0FBOUQ7QUFDQUgsTUFBQUEsTUFBTSxDQUFDRCxnQkFBZ0IsQ0FBQ04sS0FBakIsR0FBeUJXLFFBQXpCLENBQWtDWCxLQUFsQyxDQUF3Q1ksV0FBekMsQ0FBTixDQUE0REYsT0FBNUQsQ0FBb0UsVUFBcEU7QUFDRCxLQU5DLENBQUY7QUFPRCxHQW5DTyxDQUFSO0FBb0NELENBckNPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBzaGFsbG93Q2hpbGQgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgRW56eW1lIGZyb20gJ2VuenltZSc7XG5pbXBvcnQgQWRhcHRlciBmcm9tICdlbnp5bWUtYWRhcHRlci1yZWFjdC0xNic7XG5cbkVuenltZS5jb25maWd1cmUoeyBhZGFwdGVyOiBuZXcgQWRhcHRlcigpIH0pO1xuXG5kZXNjcmliZSgndGVzdC11dGlscycsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3NoYWxsb3dDaGlsZCcsICgpID0+IHtcbiAgICBmdW5jdGlvbiBzaW1wbGVIb0MoV3JhcHBlZENvbXBvbmVudCkge1xuICAgICAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICAgICAgcmVuZGVyKCkge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8V3JhcHBlZENvbXBvbmVudCBvbmVNb3JlUHJvcD1cImhlbGxvXCIgey4uLnRoaXMucHJvcHN9IC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNsYXNzIFNpbXBsZUNvbXBvbmVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgICByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiA8c3Bhbj5NeSBzaW1wbGUgY29tcG9uZW50IHdpbGwgZ2V0IHdyYXBwZWQ8L3NwYW4+O1xuICAgICAgfVxuICAgIH1cblxuICAgIGl0KCdtb3ZlcyBwYXN0IEhvQyBhbmQgcmV0dXJucyBzaGFsbG93IHJlbmRlcmVkIGNvbXBvbmVudCB1c2luZyBlbnp5bWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB3cmFwcGVyID0gc2hhbGxvd0NoaWxkKHNpbXBsZUhvQyhTaW1wbGVDb21wb25lbnQpLCBudWxsLCAxKTtcbiAgICAgIGNvbnN0IHNoYWxsb3dDb21wb25lbnQgPSB3cmFwcGVyKCk7XG5cbiAgICAgIGV4cGVjdChzaGFsbG93Q29tcG9uZW50LmZpbmQoU2ltcGxlQ29tcG9uZW50KS5sZW5ndGgpLnRvRXF1YWwoMSk7XG4gICAgICBleHBlY3Qoc2hhbGxvd0NvbXBvbmVudC5wcm9wcygpLmNoaWxkcmVuLnByb3BzLm9uZU1vcmVQcm9wKS50b0VxdWFsKCdoZWxsbycpO1xuICAgICAgZXhwZWN0KHNoYWxsb3dDb21wb25lbnQuaHRtbCgpLmluY2x1ZGVzKCdzcGFuJykpLnRvRXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnb3ZlcndyaXRlcyBzcGVjaWZpYyBwcm9wcyB3aGVuIHBhc3NlZCBpbnRvIHRoZSBjbG9zdXJlJywgKCkgPT4ge1xuICAgICAgY29uc3Qgd3JhcHBlciA9IHNoYWxsb3dDaGlsZChzaW1wbGVIb0MoU2ltcGxlQ29tcG9uZW50KSwgbnVsbCwgMSk7XG4gICAgICBjb25zdCBzaGFsbG93Q29tcG9uZW50ID0gd3JhcHBlcih7IG9uZU1vcmVQcm9wOiAnaGVsbG9Ub28nIH0pO1xuXG4gICAgICBleHBlY3Qoc2hhbGxvd0NvbXBvbmVudC5maW5kKFNpbXBsZUNvbXBvbmVudCkubGVuZ3RoKS50b0VxdWFsKDEpO1xuICAgICAgZXhwZWN0KHNoYWxsb3dDb21wb25lbnQucHJvcHMoKS5jaGlsZHJlbi5wcm9wcy5vbmVNb3JlUHJvcCkudG9FcXVhbCgnaGVsbG9Ub28nKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
package/lib/index.js
CHANGED
|
@@ -37,4 +37,4 @@ function shallowChild(Component) {
|
|
|
37
37
|
return rendered;
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
//# sourceMappingURL=
|
|
40
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJzaGFsbG93Q2hpbGQiLCJDb21wb25lbnQiLCJkZWZhdWx0UHJvcHMiLCJuZXN0TGV2ZWwiLCJpbm5lclJlbmRlciIsInByb3BzIiwicmVuZGVyZWQiLCJyZXBlYXQiLCJmaXJzdCIsInNoYWxsb3ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7Ozs7O0FBRU8sU0FBU0EsWUFBVCxDQUFzQkMsU0FBdEIsRUFBK0Q7QUFBQSxNQUE5QkMsWUFBOEIsdUVBQWYsRUFBZTtBQUFBLE1BQVhDLFNBQVc7QUFDcEUsU0FBTyxTQUFTQyxXQUFULEdBQWlDO0FBQUEsUUFBWkMsS0FBWSx1RUFBSixFQUFJO0FBQ3RDLFFBQUlDLFFBQVEsR0FBRyxtQ0FBUSxvQkFBQyxTQUFELGdDQUFlSixZQUFmLEVBQWlDRyxLQUFqQyxFQUFSLENBQWY7O0FBRUEsUUFBSUYsU0FBSixFQUFlO0FBQ2IsVUFBSUksTUFBTSxHQUFHSixTQUFiOztBQUVBLGFBQU9JLE1BQU0sRUFBYixFQUFpQjtBQUNmRCxRQUFBQSxRQUFRLEdBQUdBLFFBQVEsQ0FBQ0UsS0FBVCxHQUFpQkMsT0FBakIsRUFBWDtBQUNEO0FBQ0Y7O0FBRUQsV0FBT0gsUUFBUDtBQUNELEdBWkQ7QUFhRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHNoYWxsb3cgfSBmcm9tICdlbnp5bWUnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2hhbGxvd0NoaWxkKENvbXBvbmVudCwgZGVmYXVsdFByb3BzID0ge30sIG5lc3RMZXZlbCkge1xuICByZXR1cm4gZnVuY3Rpb24gaW5uZXJSZW5kZXIocHJvcHMgPSB7fSkge1xuICAgIGxldCByZW5kZXJlZCA9IHNoYWxsb3coPENvbXBvbmVudCB7Li4uZGVmYXVsdFByb3BzfSB7Li4ucHJvcHN9IC8+KTtcblxuICAgIGlmIChuZXN0TGV2ZWwpIHtcbiAgICAgIGxldCByZXBlYXQgPSBuZXN0TGV2ZWw7XG5cbiAgICAgIHdoaWxlIChyZXBlYXQtLSkge1xuICAgICAgICByZW5kZXJlZCA9IHJlbmRlcmVkLmZpcnN0KCkuc2hhbGxvdygpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZW5kZXJlZDtcbiAgfTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/test-utils",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0-beta.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "src/index.js",
|
|
@@ -13,6 +13,6 @@
|
|
|
13
13
|
"enzyme": "^3.8.0",
|
|
14
14
|
"react": "^16.8.1"
|
|
15
15
|
},
|
|
16
|
-
"gitHead": "
|
|
16
|
+
"gitHead": "3818c24530f62b5bb9be7a2c6aa5428f13a17e0a",
|
|
17
17
|
"scripts": {}
|
|
18
18
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { shallowChild } from '../index';
|
|
3
|
+
import Enzyme from 'enzyme';
|
|
4
|
+
import Adapter from 'enzyme-adapter-react-16';
|
|
5
|
+
|
|
6
|
+
Enzyme.configure({ adapter: new Adapter() });
|
|
7
|
+
|
|
8
|
+
describe('test-utils', () => {
|
|
9
|
+
describe('shallowChild', () => {
|
|
10
|
+
function simpleHoC(WrappedComponent) {
|
|
11
|
+
return class extends React.Component {
|
|
12
|
+
render() {
|
|
13
|
+
return (
|
|
14
|
+
<div>
|
|
15
|
+
<WrappedComponent oneMoreProp="hello" {...this.props} />
|
|
16
|
+
</div>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
class SimpleComponent extends React.Component {
|
|
23
|
+
render() {
|
|
24
|
+
return <span>My simple component will get wrapped</span>;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
it('moves past HoC and returns shallow rendered component using enzyme', () => {
|
|
29
|
+
const wrapper = shallowChild(simpleHoC(SimpleComponent), null, 1);
|
|
30
|
+
const shallowComponent = wrapper();
|
|
31
|
+
|
|
32
|
+
expect(shallowComponent.find(SimpleComponent).length).toEqual(1);
|
|
33
|
+
expect(shallowComponent.props().children.props.oneMoreProp).toEqual('hello');
|
|
34
|
+
expect(shallowComponent.html().includes('span')).toEqual(true);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('overwrites specific props when passed into the closure', () => {
|
|
38
|
+
const wrapper = shallowChild(simpleHoC(SimpleComponent), null, 1);
|
|
39
|
+
const shallowComponent = wrapper({ oneMoreProp: 'helloToo' });
|
|
40
|
+
|
|
41
|
+
expect(shallowComponent.find(SimpleComponent).length).toEqual(1);
|
|
42
|
+
expect(shallowComponent.props().children.props.oneMoreProp).toEqual('helloToo');
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
});
|
package/.travis.yml
DELETED
package/README.md
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# test-utils
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
`test-utils` is a small collection of tools and helper functions that facilitate testing for components of the PIE framework.
|
|
5
|
-
|
|
6
|
-
## Usage
|
|
7
|
-
|
|
8
|
-
### Install
|
|
9
|
-
|
|
10
|
-
npm install --save @pie-lib/test-utils
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
### Import
|
|
14
|
-
|
|
15
|
-
import { shallowChild } from '@pie-lib/test-utils';
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
### Use it for testing HoC wrapped components
|
|
19
|
-
|
|
20
|
-
const wrapper = shallowChild(ComponentX, defaultProps, 1); // 1 being nest level, for instance Material-UI styles wrapper HoC
|
|
21
|
-
const componentWithSpecificProps = wrapper(specificProps);
|
|
22
|
-
|
|
23
|
-
expect(componentWithSpecificProps.find('div').length).toEqual(1);
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["shallowChild","Component","defaultProps","nestLevel","innerRender","props","rendered","repeat","first","shallow"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEO,SAASA,YAAT,CAAsBC,SAAtB,EAA+D;AAAA,MAA9BC,YAA8B,uEAAf,EAAe;AAAA,MAAXC,SAAW;AACpE,SAAO,SAASC,WAAT,GAAiC;AAAA,QAAZC,KAAY,uEAAJ,EAAI;AACtC,QAAIC,QAAQ,GAAG,mCAAQ,oBAAC,SAAD,gCAAeJ,YAAf,EAAiCG,KAAjC,EAAR,CAAf;;AAEA,QAAIF,SAAJ,EAAe;AACb,UAAII,MAAM,GAAGJ,SAAb;;AAEA,aAAOI,MAAM,EAAb,EAAiB;AACfD,QAAAA,QAAQ,GAAGA,QAAQ,CAACE,KAAT,GAAiBC,OAAjB,EAAX;AACD;AACF;;AAED,WAAOH,QAAP;AACD,GAZD;AAaD","sourcesContent":["import * as React from 'react';\nimport { shallow } from 'enzyme';\n\nexport function shallowChild(Component, defaultProps = {}, nestLevel) {\n return function innerRender(props = {}) {\n let rendered = shallow(<Component {...defaultProps} {...props} />);\n\n if (nestLevel) {\n let repeat = nestLevel;\n\n while (repeat--) {\n rendered = rendered.first().shallow();\n }\n }\n\n return rendered;\n };\n}\n"],"file":"index.js"}
|