@roderickhsiao/react-i13n
Version:
[Experiment] React I13n provides a performant and scalable solution to application instrumentation.
154 lines (118 loc) • 6.46 kB
JavaScript
;
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));
});
});