UNPKG

reshow-build

Version:
184 lines 6.43 kB
import _objectWithoutProperties from "reshow-runtime/es/helpers/objectWithoutProperties"; import _objectSpread from "reshow-runtime/es/helpers/objectSpread2"; import _classCallCheck from "reshow-runtime/es/helpers/classCallCheck"; import _createClass from "reshow-runtime/es/helpers/createClass"; import _possibleConstructorReturn from "reshow-runtime/es/helpers/possibleConstructorReturn"; import _isNativeReflectConstruct from "reshow-runtime/es/helpers/isNativeReflectConstruct"; import _getPrototypeOf from "reshow-runtime/es/helpers/getPrototypeOf"; import _inherits from "reshow-runtime/es/helpers/inherits"; var _excluded = ["comp"]; var _div, _div2, _div3; function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } // @ts-check import * as React from "react"; var { PureComponent } = React; import { expect } from "chai"; import { render } from "reshow-unit"; import build from "../index.mjs"; import { jsx as _jsx } from "react/jsx-runtime"; describe("Test build render", function () { it("test build native html", function () { var vdom = /**@type React.ReactElement*/build("a")(); var actual = render(vdom).html(); expect(actual).to.equal("<a></a>"); }); it("test function return another component", function () { var FakeComponent = /*#__PURE__*/function (_PureComponent) { function FakeComponent() { _classCallCheck(this, FakeComponent); return _callSuper(this, FakeComponent, arguments); } _inherits(FakeComponent, _PureComponent); return _createClass(FakeComponent, [{ key: "render", value: function render() { return /*#__PURE__*/_jsx("div", { children: this.props.foo }); } }]); }(PureComponent); var func = function func(/**@type any*/props) { return /*#__PURE__*/_jsx(FakeComponent, _objectSpread({}, props)); }; var vDom = /**@type React.ReactElement*/build(func)({ foo: "bar3" }); var html = render(vDom).html(); expect(html).to.equal("<div>bar3</div>"); }); it("test with anonymous func and child", function () { var child = [_div || (_div = /*#__PURE__*/_jsx("div", { id: "1" }, "0")), _div2 || (_div2 = /*#__PURE__*/_jsx("div", { id: "2" }, "1"))]; var buildDom = build(function (/** @type any*/_ref) { var { children } = _ref; return /*#__PURE__*/_jsx("div", { id: "root", children: children }); })({}, child); var html = render(/*#__PURE__*/_jsx("div", { children: buildDom })).html(); var stateFunc = function stateFunc(_ref2) { var { children } = _ref2; return /*#__PURE__*/_jsx("div", { id: "root", children: children }); }; var stateFuncBuildDom = build(stateFunc)({}, child); var stateFuncHtml = render(/*#__PURE__*/_jsx("div", { children: stateFuncBuildDom })).html(); var expected = '<div><div id="root"><div id="1"></div><div id="2"></div></div></div>'; expect(html).to.equal(expected); expect(stateFuncHtml).to.equal(expected); }); it("test with component", function () { var FakeComponent = function FakeComponent(/** @type any*/props) { return /*#__PURE__*/_jsx("div", { children: props.foo }); }; var vDom = /**@type React.ReactElement*/ build(FakeComponent)({ foo: "bar" }); var html = render(vDom).html(); expect(html).to.equal("<div>bar</div>"); }); it("test with instance", function () { var FakeComponent = function FakeComponent(/** @type any*/props) { return /*#__PURE__*/_jsx("div", { children: props.foo }); }; var vDom = /**@type React.ReactElement*/ build(/*#__PURE__*/_jsx(FakeComponent, {}))({ foo: "bar1" }); var html = render(vDom).html(); expect(html).to.equal("<div>bar1</div>"); }); it("test with class component", function () { var FakeComponent = /*#__PURE__*/function (_PureComponent2) { function FakeComponent() { _classCallCheck(this, FakeComponent); return _callSuper(this, FakeComponent, arguments); } _inherits(FakeComponent, _PureComponent2); return _createClass(FakeComponent, [{ key: "render", value: function render() { return /*#__PURE__*/_jsx("div", { children: this.props.foo }); } }]); }(PureComponent); var vDom = /**@type React.ReactElement*/ build(FakeComponent)({ foo: "bar2" }); var html = render(vDom).html(); expect(html).to.equal("<div>bar2</div>"); }); it("test with clone and child", function () { var FakeComponent = /*#__PURE__*/function (_PureComponent3) { function FakeComponent() { _classCallCheck(this, FakeComponent); return _callSuper(this, FakeComponent, arguments); } _inherits(FakeComponent, _PureComponent3); return _createClass(FakeComponent, [{ key: "render", value: function render() { var _this$props = this.props, { comp } = _this$props, others = _objectWithoutProperties(_this$props, _excluded); return build(comp)(others, "bar"); } }]); }(PureComponent); var html = render(/*#__PURE__*/_jsx(FakeComponent, { id: "foo", comp: _div3 || (_div3 = /*#__PURE__*/_jsx("div", { children: "foo" })) })).html(); expect(html).to.equal('<div id="foo">bar</div>'); }); it("test with class and child", function () { var FakeComponent = /*#__PURE__*/function (_PureComponent4) { function FakeComponent() { _classCallCheck(this, FakeComponent); return _callSuper(this, FakeComponent, arguments); } _inherits(FakeComponent, _PureComponent4); return _createClass(FakeComponent, [{ key: "render", value: function render() { return /*#__PURE__*/_jsx("div", _objectSpread({}, this.props)); } }]); }(PureComponent); var vDom = /**@type React.ReactElement*/ build(FakeComponent)({ id: "foo" }, "hello"); var html = render(vDom).html(); expect(html).to.equal('<div id="foo">hello</div>'); }); });