@beisen/storybook-react
Version:
Storybook for React: Develop React Component in isolation with Hot Reloading.
84 lines (75 loc) • 3.42 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _react = _interopRequireDefault(require("react"));
var _element_check = _interopRequireWildcard(require("./element_check"));
describe('element_check.utils.isValidFiberElement', function () {
it('should accept to render a string', function () {
var string = 'react is awesome';
expect((0, _element_check.isValidFiberElement)(string)).toBe(true);
});
it('should accept to render a number', function () {
var number = 42;
expect((0, _element_check.isValidFiberElement)(number)).toBe(true);
});
it('should accept to render a valid React element', function () {
var element = _react["default"].createElement("button", {
type: "button"
}, "Click me");
expect((0, _element_check.isValidFiberElement)(element)).toBe(true);
});
it("shouldn't accept to render an arbitrary object", function () {
var object = {
key: 'bee bop'
};
expect((0, _element_check.isValidFiberElement)(object)).toBe(false);
});
it("shouldn't accept to render a function", function () {
var noop = function noop() {};
expect((0, _element_check.isValidFiberElement)(noop)).toBe(false);
});
it("shouldn't accept to render undefined", function () {
expect((0, _element_check.isValidFiberElement)(undefined)).toBe(false);
});
});
describe('element_check.utils.isPriorToFiber', function () {
it('should return true if React version is prior to Fiber (< 16)', function () {
var oldVersion = '0.14.5';
var version = '15.5.4';
expect((0, _element_check.isPriorToFiber)(oldVersion)).toBe(true);
expect((0, _element_check.isPriorToFiber)(version)).toBe(true);
});
it('should return false if React version is using Fiber features (>= 16)', function () {
var alphaVersion = '16.0.0-alpha.13';
var version = '18.3.1';
expect((0, _element_check.isPriorToFiber)(alphaVersion)).toBe(false);
expect((0, _element_check.isPriorToFiber)(version)).toBe(false);
});
});
describe('element_check.isReactRenderable', function () {
var string = 'yo';
var number = 1337;
var element = _react["default"].createElement("span", null, "what's up");
var array = [string, number, element];
var object = {
key: null
};
it('allows rendering React elements only prior to React Fiber', function () {
// mutate version for the purpose of the test
_react["default"].version = '15.5.4';
expect((0, _element_check["default"])(string)).toBe(false);
expect((0, _element_check["default"])(number)).toBe(false);
expect((0, _element_check["default"])(element)).toBe(true);
expect((0, _element_check["default"])(array)).toBe(false);
expect((0, _element_check["default"])(object)).toBe(false);
});
it('allows rendering string, numbers, arrays and React elements with React Fiber', function () {
// mutate version for the purpose of the test
_react["default"].version = '16.0.0-alpha.13';
expect((0, _element_check["default"])(string)).toBe(true);
expect((0, _element_check["default"])(number)).toBe(true);
expect((0, _element_check["default"])(element)).toBe(true);
expect((0, _element_check["default"])(array)).toBe(true);
expect((0, _element_check["default"])(object)).toBe(false);
});
});