Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/modules / ___dist / SSR / async-bootstrapper / __tests__ / asyncBootstrapper.js
Size: Mime:
"use strict";

var _react = _interopRequireWildcard(require("react"));

var _ = _interopRequireDefault(require("../"));

var _jsxFileName = "/Users/michaelfrohberg/Training/mono/packages/modules/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;

  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);
    }

  }

  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
    });
  }));
});