UNPKG

@roderickhsiao/react-i13n

Version:

[Experiment] React I13n provides a performant and scalable solution to application instrumentation.

154 lines (118 loc) 6.46 kB
"use strict"; var _react = _interopRequireWildcard(require("react")); var _react2 = require("@testing-library/react"); var _setupI13n = _interopRequireDefault(require("../setupI13n")); var _I13nContext = _interopRequireDefault(require("../../components/core/I13nContext")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var mockData = { options: {}, plugin: { name: 'test' } }; describe('setupI13n', function () { beforeAll(function () { // http://fb.me/react-polyfills global.requestAnimationFrame = function (callback) { setTimeout(callback, 0); }; }); it('should generate a component with setupI13n', function () { var testContext; var TestApp = function TestApp() { var context = (0, _react.useContext)(_I13nContext["default"]); testContext = context; return /*#__PURE__*/_react["default"].createElement("div", null); }; TestApp.displayName = 'TestApp'; // check the initial state is correct after render var I13nTestApp = (0, _setupI13n["default"])(TestApp, mockData.options, [mockData.plugin]); expect(I13nTestApp.displayName).toEqual('RootI13nTestApp'); (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(I13nTestApp, null)); var reactI13n = testContext.i13nInstance; expect(reactI13n._plugins.test).toEqual(mockData.plugin); expect(typeof reactI13n._rootI13nNode).toEqual('object'); }); it('should generate a component with custom displayName', function () { var TestApp = function TestApp() { return /*#__PURE__*/_react["default"].createElement("div", null); }; // check the initial state is correct after render var I13nTestApp = (0, _setupI13n["default"])(TestApp, { displayName: 'Foo' }, [mockData.plugin]); expect(I13nTestApp.displayName).toEqual('Foo'); (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(I13nTestApp, null)); }); it('should generate a component with setupI13n and custom display name', function () { var TestApp = function TestApp() { return /*#__PURE__*/_react["default"].createElement("div", null); }; TestApp.displayName = 'TestApp'; // check the initial state is correct after render var I13nTestApp = (0, _setupI13n["default"])(TestApp, { displayName: 'CustomName' }); expect(I13nTestApp.displayName).toEqual('CustomName'); }); it('should get i13n util functions via context', function (done) { var TestApp = /*#__PURE__*/function (_Component) { _inheritsLoose(TestApp, _Component); function TestApp() { return _Component.apply(this, arguments) || this; } var _proto = TestApp.prototype; _proto.render = function render() { expect(typeof this.context.i13nInstance).toEqual('object'); expect(typeof this.context.executeEvent).toEqual('function'); done(); return /*#__PURE__*/_react["default"].createElement("div", null); }; return TestApp; }(_react.Component); _defineProperty(TestApp, "displayName", 'TestApp'); _defineProperty(TestApp, "contextType", _I13nContext["default"]); var I13nTestApp = (0, _setupI13n["default"])(TestApp, {}, [mockData.plugin]); (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(I13nTestApp, null)); }); it('should get i13n util functions via props', function (done) { var TestApp = /*#__PURE__*/function (_Component2) { _inheritsLoose(TestApp, _Component2); function TestApp() { return _Component2.apply(this, arguments) || this; } var _proto2 = TestApp.prototype; _proto2.render = function render() { expect(typeof this.props.i13n.i13nInstance).toEqual('object'); expect(typeof this.props.i13n.executeEvent).toEqual('function'); done(); return /*#__PURE__*/_react["default"].createElement("div", null); }; return TestApp; }(_react.Component); _defineProperty(TestApp, "displayName", 'TestApp'); var I13nTestApp = (0, _setupI13n["default"])(TestApp, {}, [mockData.plugin]); (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(I13nTestApp, null)); }); it('should get not i13n util functions via props if skipUtilFunctionsByProps is true', function (done) { var TestApp = /*#__PURE__*/function (_Component3) { _inheritsLoose(TestApp, _Component3); function TestApp() { return _Component3.apply(this, arguments) || this; } var _proto3 = TestApp.prototype; _proto3.render = function render() { expect(this.props.i13n).toBeUndefined(); done(); return /*#__PURE__*/_react["default"].createElement("div", null); }; return TestApp; }(_react.Component); _defineProperty(TestApp, "displayName", 'TestApp'); var I13nTestApp = (0, _setupI13n["default"])(TestApp, { skipUtilFunctionsByProps: true }, [mockData.plugin]); (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(I13nTestApp, null)); }); });