Repository URL to install this package:
|
Version:
1.1.21 ▾
|
"use strict";
var _react = _interopRequireWildcard(require("react"));
var _ = _interopRequireDefault(require("../"));
var _jsxFileName = "SSR/async-bootstrapper/__tests__/asyncBootstrapper.js";
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
describe('asyncBootstrapper()', () => {
let values = [];
let actualContext;
let DeprecatedAPI = class DeprecatedAPI extends _react.Component {
asyncBootstrap() {
values.push(this.props.id);
return true;
}
render() {
return _react.default.createElement("div", {
__source: {
fileName: _jsxFileName,
lineNumber: 19
},
__self: this
}, this.props.children);
}
};
let NewAPI = class NewAPI extends _react.Component {
bootstrap() {
values.push(this.props.id);
actualContext = this.context;
return true;
}
render() {
return _react.default.createElement("div", {
__source: {
fileName: _jsxFileName,
lineNumber: 31
},
__self: this
}, this.props.children);
}
};
const app = Foo => _react.default.createElement(Foo, {
id: 1,
__source: {
fileName: _jsxFileName,
lineNumber: 36
},
__self: void 0
}, _react.default.createElement("div", {
__source: {
fileName: _jsxFileName,
lineNumber: 37
},
__self: void 0
}, _react.default.createElement("h1", {
__source: {
fileName: _jsxFileName,
lineNumber: 38
},
__self: void 0
}, "Test")), _react.default.createElement(Foo, {
id: 2,
__source: {
fileName: _jsxFileName,
lineNumber: 40
},
__self: void 0
}, _react.default.createElement(Foo, {
id: 4,
__source: {
fileName: _jsxFileName,
lineNumber: 41
},
__self: void 0
})), _react.default.createElement(Foo, {
id: 3,
__source: {
fileName: _jsxFileName,
lineNumber: 43
},
__self: void 0
}));
beforeEach(() => {
values = [];
});
it('deprecated API', () => (0, _.default)(app(DeprecatedAPI)).then(() => expect(values).toEqual([1, 2, 4, 3])));
it('new API', () => (0, _.default)(app(NewAPI), null, {
bespokeContext: true
}).then(() => {
expect(values).toEqual([1, 2, 4, 3]);
expect(actualContext).toEqual({
bespokeContext: true,
reactAsyncBootstrapperRunning: true
});
}));
});