triviality-react
Version:
Exposes triviality service container to react components
62 lines • 3.01 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
var React = __importStar(require("react"));
var renderer = __importStar(require("react-test-renderer"));
var ServiceContainerProvider_1 = require("../ServiceContainerProvider");
var ServiceContainerConsumer_1 = require("../ServiceContainerConsumer");
it('Able to nest providers', function (done) {
var serviceContainer1 = { hi: 'test' };
var serviceContainer2 = { bye: 'test' };
renderer.create((React.createElement(ServiceContainerProvider_1.ServiceContainerProvider, { factory: Promise.resolve(serviceContainer1) },
React.createElement(ServiceContainerProvider_1.ServiceContainerProvider, { factory: Promise.resolve(serviceContainer2) },
React.createElement(ServiceContainerConsumer_1.ServiceContainerConsumer, null, function (container) {
expect(container).toBe(serviceContainer1);
done();
return React.createElement("div", null);
})))));
});
it('Handle errors in boundary', function (done) {
var ErrorBoundary = /** @class */ (function (_super) {
__extends(ErrorBoundary, _super);
function ErrorBoundary() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.state = { hasError: false };
return _this;
}
ErrorBoundary.prototype.componentDidCatch = function (error) {
expect(error).toBe('someCriticalError');
done();
};
ErrorBoundary.prototype.render = function () {
if (this.state.hasError) {
// You can render any custom fallback UI
return React.createElement("h1", null, "Something went wrong.");
}
return this.props.children;
};
return ErrorBoundary;
}(React.Component));
renderer.create((React.createElement(ErrorBoundary, null,
React.createElement(ServiceContainerProvider_1.ServiceContainerProvider, { factory: Promise.reject('someCriticalError') }, "test"))));
});
//# sourceMappingURL=ServiceContainerProvider.test.js.map