UNPKG

@data-client/test

Version:
100 lines (99 loc) 12.9 kB
import _extends from "@babel/runtime/helpers/esm/extends"; /** * Provides an abstraction over react 17 and 18 compatible libraries */ import { ErrorBoundary } from '@data-client/react'; import { Suspense } from 'react'; import { act, waitFor, renderHook } from './render18Hook.js'; import { jsx as _jsx } from "react/jsx-runtime"; export { act }; export function render18Wrapper(render, options) { var _SetUndefined; let renderProps = options == null ? void 0 : options.initialProps; let error; const setError = e => { error = e; }; let resetErrorBoundary = () => {}; const ErrorFallback = ({ error, resetErrorBoundary: reset }) => { resetErrorBoundary = () => { resetErrorBoundary = () => {}; setTimeout(reset, 0); }; setError(error); return null; }; let resultUndefined = false; const setResultUndefined = () => { resultUndefined = true; }; const SetUndefined = () => { setResultUndefined(); return null; }; const WithErrorWrap = props => { resetErrorBoundary(); resultUndefined = false; return /*#__PURE__*/_jsx(Suspense, { fallback: _SetUndefined || (_SetUndefined = /*#__PURE__*/_jsx(SetUndefined, {})), children: /*#__PURE__*/_jsx(ErrorBoundary, { fallbackComponent: ErrorFallback, children: props.children }) }); }; // TODO: add error and waitforupdate const Wrapper = options == null ? void 0 : options.wrapper; const wrapper = Wrapper ? function ProviderWrapped(props) { return /*#__PURE__*/_jsx(Wrapper, _extends({}, renderProps, props, { children: /*#__PURE__*/_jsx(WithErrorWrap, { children: props.children }) })); } : WithErrorWrap; const render18Result = renderHook(render, _extends({}, options, { wrapper })); const ret = Object.create(render18Result, { result: { value: { get current() { return render18Result.result.current === null ? undefined : render18Result.result.current; }, get error() { return error; } } }, rerender: { value: props => { renderProps = props; render18Result.rerender(props); } }, waitFor: { value: waitFor }, waitForNextUpdate: { value: async options => { const previousCurrent = ret.result.current; const isMockTimers = typeof jest !== 'undefined' && setTimeout.clock != null && typeof setTimeout.clock.Date === 'function'; if (isMockTimers) { jest.runOnlyPendingTimers(); jest.useRealTimers(); } await waitFor(() => { if (!error && ret.result.current === previousCurrent) { throw new Error('timeout in waitForNextUpdate'); } }, options); if (isMockTimers) jest.useFakeTimers(); } } }); return ret; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFcnJvckJvdW5kYXJ5IiwiU3VzcGVuc2UiLCJhY3QiLCJ3YWl0Rm9yIiwicmVuZGVySG9vayIsImpzeCIsIl9qc3giLCJyZW5kZXIxOFdyYXBwZXIiLCJyZW5kZXIiLCJvcHRpb25zIiwiX1NldFVuZGVmaW5lZCIsInJlbmRlclByb3BzIiwiaW5pdGlhbFByb3BzIiwiZXJyb3IiLCJzZXRFcnJvciIsImUiLCJyZXNldEVycm9yQm91bmRhcnkiLCJFcnJvckZhbGxiYWNrIiwicmVzZXQiLCJzZXRUaW1lb3V0IiwicmVzdWx0VW5kZWZpbmVkIiwic2V0UmVzdWx0VW5kZWZpbmVkIiwiU2V0VW5kZWZpbmVkIiwiV2l0aEVycm9yV3JhcCIsInByb3BzIiwiZmFsbGJhY2siLCJjaGlsZHJlbiIsImZhbGxiYWNrQ29tcG9uZW50IiwiV3JhcHBlciIsIndyYXBwZXIiLCJQcm92aWRlcldyYXBwZWQiLCJfZXh0ZW5kcyIsInJlbmRlcjE4UmVzdWx0IiwicmV0IiwiT2JqZWN0IiwiY3JlYXRlIiwicmVzdWx0IiwidmFsdWUiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwicmVyZW5kZXIiLCJ3YWl0Rm9yTmV4dFVwZGF0ZSIsInByZXZpb3VzQ3VycmVudCIsImlzTW9ja1RpbWVycyIsImplc3QiLCJjbG9jayIsIkRhdGUiLCJydW5Pbmx5UGVuZGluZ1RpbWVycyIsInVzZVJlYWxUaW1lcnMiLCJFcnJvciIsInVzZUZha2VUaW1lcnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFrZVJlbmRlckRhdGFDbGllbnQvcmVuZGVyMThIb29rV3JhcHBlZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQcm92aWRlcyBhbiBhYnN0cmFjdGlvbiBvdmVyIHJlYWN0IDE3IGFuZCAxOCBjb21wYXRpYmxlIGxpYnJhcmllc1xuICovXG5pbXBvcnQgeyBFcnJvckJvdW5kYXJ5IH0gZnJvbSAnQGRhdGEtY2xpZW50L3JlYWN0JztcbmltcG9ydCB0eXBlIHsgUXVlcmllcywgd2FpdEZvck9wdGlvbnMgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IFN1c3BlbnNlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBhY3QsIHdhaXRGb3IsIHJlbmRlckhvb2ssIFJlbmRlckhvb2tPcHRpb25zIH0gZnJvbSAnLi9yZW5kZXIxOEhvb2suanMnO1xuXG5leHBvcnQgeyBhY3QgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcjE4V3JhcHBlcjxcbiAgUmVzdWx0LFxuICBQcm9wcyxcbiAgUSBleHRlbmRzIFF1ZXJpZXMgPSBRdWVyaWVzLFxuICBDb250YWluZXIgZXh0ZW5kcyBFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCA9IEhUTUxFbGVtZW50LFxuICBCYXNlRWxlbWVudCBleHRlbmRzIEVsZW1lbnQgfCBEb2N1bWVudEZyYWdtZW50ID0gQ29udGFpbmVyLFxuPihcbiAgcmVuZGVyOiAoaW5pdGlhbFByb3BzOiBQcm9wcykgPT4gUmVzdWx0LFxuICBvcHRpb25zPzogUmVuZGVySG9va09wdGlvbnM8UHJvcHMsIFEsIENvbnRhaW5lciwgQmFzZUVsZW1lbnQ+LFxuKTogUmVuZGVySG9va1Jlc3VsdDxSZXN1bHQsIFByb3BzPiB7XG4gIGxldCByZW5kZXJQcm9wczogYW55ID0gb3B0aW9ucz8uaW5pdGlhbFByb3BzO1xuICBsZXQgZXJyb3I6IGFueTtcbiAgY29uc3Qgc2V0RXJyb3IgPSAoZTogYW55KSA9PiB7XG4gICAgZXJyb3IgPSBlO1xuICB9O1xuICBsZXQgcmVzZXRFcnJvckJvdW5kYXJ5ID0gKCkgPT4ge307XG4gIGNvbnN0IEVycm9yRmFsbGJhY2sgPSAoeyBlcnJvciwgcmVzZXRFcnJvckJvdW5kYXJ5OiByZXNldCB9OiBhbnkpID0+IHtcbiAgICByZXNldEVycm9yQm91bmRhcnkgPSAoKSA9PiB7XG4gICAgICByZXNldEVycm9yQm91bmRhcnkgPSAoKSA9PiB7fTtcbiAgICAgIHNldFRpbWVvdXQocmVzZXQsIDApO1xuICAgIH07XG4gICAgc2V0RXJyb3IoZXJyb3IpO1xuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIGxldCByZXN1bHRVbmRlZmluZWQgPSBmYWxzZTtcbiAgY29uc3Qgc2V0UmVzdWx0VW5kZWZpbmVkID0gKCkgPT4ge1xuICAgIHJlc3VsdFVuZGVmaW5lZCA9IHRydWU7XG4gIH07XG4gIGNvbnN0IFNldFVuZGVmaW5lZCA9ICgpID0+IHtcbiAgICBzZXRSZXN1bHRVbmRlZmluZWQoKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICBjb25zdCBXaXRoRXJyb3JXcmFwID0gKHByb3BzOiBhbnkpID0+IHtcbiAgICByZXNldEVycm9yQm91bmRhcnkoKTtcbiAgICByZXN1bHRVbmRlZmluZWQgPSBmYWxzZTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3VzcGVuc2UgZmFsbGJhY2s9ezxTZXRVbmRlZmluZWQgLz59PlxuICAgICAgICA8RXJyb3JCb3VuZGFyeSBmYWxsYmFja0NvbXBvbmVudD17RXJyb3JGYWxsYmFja30+XG4gICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICA8L0Vycm9yQm91bmRhcnk+XG4gICAgICA8L1N1c3BlbnNlPlxuICAgICk7XG4gIH07XG5cbiAgLy8gVE9ETzogYWRkIGVycm9yIGFuZCB3YWl0Zm9ydXBkYXRlXG4gIGNvbnN0IFdyYXBwZXIgPSBvcHRpb25zPy53cmFwcGVyO1xuICBjb25zdCB3cmFwcGVyOiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT4gPVxuICAgIFdyYXBwZXIgP1xuICAgICAgZnVuY3Rpb24gUHJvdmlkZXJXcmFwcGVkKHByb3BzOiBSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjxhbnk+KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFdyYXBwZXIgey4uLnJlbmRlclByb3BzfSB7Li4ucHJvcHN9PlxuICAgICAgICAgICAgPFdpdGhFcnJvcldyYXA+e3Byb3BzLmNoaWxkcmVufTwvV2l0aEVycm9yV3JhcD5cbiAgICAgICAgICA8L1dyYXBwZXI+XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgOiBXaXRoRXJyb3JXcmFwO1xuXG4gIGNvbnN0IHJlbmRlcjE4UmVzdWx0ID0gcmVuZGVySG9vayhyZW5kZXIsIHtcbiAgICAuLi5vcHRpb25zLFxuICAgIHdyYXBwZXIsXG4gIH0pO1xuICBjb25zdCByZXQ6IFJlbmRlckhvb2tSZXN1bHQ8UmVzdWx0LCBQcm9wcz4gPSBPYmplY3QuY3JlYXRlKHJlbmRlcjE4UmVzdWx0LCB7XG4gICAgcmVzdWx0OiB7XG4gICAgICB2YWx1ZToge1xuICAgICAgICBnZXQgY3VycmVudCgpOiBhbnkge1xuICAgICAgICAgIHJldHVybiByZW5kZXIxOFJlc3VsdC5yZXN1bHQuY3VycmVudCA9PT0gbnVsbCA/XG4gICAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgICAgOiByZW5kZXIxOFJlc3VsdC5yZXN1bHQuY3VycmVudDtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0IGVycm9yKCkge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXJlbmRlcjoge1xuICAgICAgdmFsdWU6IChwcm9wcz86IGFueSkgPT4ge1xuICAgICAgICByZW5kZXJQcm9wcyA9IHByb3BzO1xuICAgICAgICByZW5kZXIxOFJlc3VsdC5yZXJlbmRlcihwcm9wcyk7XG4gICAgICB9LFxuICAgIH0sXG4gICAgd2FpdEZvcjoge1xuICAgICAgdmFsdWU6IHdhaXRGb3IsXG4gICAgfSxcbiAgICB3YWl0Rm9yTmV4dFVwZGF0ZToge1xuICAgICAgdmFsdWU6IGFzeW5jIChvcHRpb25zPzogd2FpdEZvck9wdGlvbnMpID0+IHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNDdXJyZW50ID0gcmV0LnJlc3VsdC5jdXJyZW50O1xuICAgICAgICBjb25zdCBpc01vY2tUaW1lcnMgPVxuICAgICAgICAgIHR5cGVvZiBqZXN0ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICAgIChzZXRUaW1lb3V0IGFzIGFueSkuY2xvY2sgIT0gbnVsbCAmJlxuICAgICAgICAgIHR5cGVvZiAoc2V0VGltZW91dCBhcyBhbnkpLmNsb2NrLkRhdGUgPT09ICdmdW5jdGlvbic7XG4gICAgICAgIGlmIChpc01vY2tUaW1lcnMpIHtcbiAgICAgICAgICBqZXN0LnJ1bk9ubHlQZW5kaW5nVGltZXJzKCk7XG4gICAgICAgICAgamVzdC51c2VSZWFsVGltZXJzKCk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICAgICAgaWYgKCFlcnJvciAmJiByZXQucmVzdWx0LmN1cnJlbnQgPT09IHByZXZpb3VzQ3VycmVudCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0aW1lb3V0IGluIHdhaXRGb3JOZXh0VXBkYXRlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCBvcHRpb25zKTtcbiAgICAgICAgaWYgKGlzTW9ja1RpbWVycykgamVzdC51c2VGYWtlVGltZXJzKCk7XG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVySG9va1Jlc3VsdDxSZXN1bHQsIFByb3BzPiB7XG4gIC8qKlxuICAgKiBUcmlnZ2VycyBhIHJlLXJlbmRlci4gVGhlIHByb3BzIHdpbGwgYmUgcGFzc2VkIHRvIHlvdXIgcmVuZGVySG9vayBjYWxsYmFjay5cbiAgICovXG4gIHJlcmVuZGVyOiAocHJvcHM/OiBQcm9wcykgPT4gdm9pZDtcbiAgLyoqXG4gICAqIFRoaXMgaXMgYSBzdGFibGUgcmVmZXJlbmNlIHRvIHRoZSBsYXRlc3QgdmFsdWUgcmV0dXJuZWQgYnkgeW91ciByZW5kZXJIb29rXG4gICAqIGNhbGxiYWNrXG4gICAqL1xuICByZXN1bHQ6IHtcbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgcmV0dXJuZWQgYnkgeW91ciByZW5kZXJIb29rIGNhbGxiYWNrXG4gICAgICovXG4gICAgY3VycmVudDogUmVzdWx0O1xuICAgIGVycm9yPzogRXJyb3I7XG4gIH07XG4gIC8qKlxuICAgKiBVbm1vdW50cyB0aGUgdGVzdCBjb21wb25lbnQuIFRoaXMgaXMgdXNlZnVsIGZvciB3aGVuIHlvdSBuZWVkIHRvIHRlc3RcbiAgICogYW55IGNsZWFudXAgeW91ciB1c2VFZmZlY3RzIGhhdmUuXG4gICAqL1xuICB1bm1vdW50OiAoKSA9PiB2b2lkO1xuICAvKiBAZGVwcmVjYXRlZCB1c2Ugd2FpdEZvciAqL1xuICB3YWl0Rm9yTmV4dFVwZGF0ZTogKG9wdGlvbnM/OiB3YWl0Rm9yT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgd2FpdEZvcjxUPihcbiAgICBjYWxsYmFjazogKCkgPT4gUHJvbWlzZTxUPiB8IFQsXG4gICAgb3B0aW9ucz86IHdhaXRGb3JPcHRpb25zLFxuICApOiBQcm9taXNlPFQ+O1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsYUFBYSxRQUFRLG9CQUFvQjtBQUVsRCxTQUFTQyxRQUFRLFFBQVEsT0FBTztBQUVoQyxTQUFTQyxHQUFHLEVBQUVDLE9BQU8sRUFBRUMsVUFBVSxRQUEyQixtQkFBbUI7QUFBQyxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFFaEYsU0FBU0osR0FBRztBQUVaLE9BQU8sU0FBU0ssZUFBZUEsQ0FPN0JDLE1BQXVDLEVBQ3ZDQyxPQUE2RCxFQUM1QjtFQUFBLElBQUFDLGFBQUE7RUFDakMsSUFBSUMsV0FBZ0IsR0FBR0YsT0FBTyxvQkFBUEEsT0FBTyxDQUFFRyxZQUFZO0VBQzVDLElBQUlDLEtBQVU7RUFDZCxNQUFNQyxRQUFRLEdBQUlDLENBQU0sSUFBSztJQUMzQkYsS0FBSyxHQUFHRSxDQUFDO0VBQ1gsQ0FBQztFQUNELElBQUlDLGtCQUFrQixHQUFHQSxDQUFBLEtBQU0sQ0FBQyxDQUFDO0VBQ2pDLE1BQU1DLGFBQWEsR0FBR0EsQ0FBQztJQUFFSixLQUFLO0lBQUVHLGtCQUFrQixFQUFFRTtFQUFXLENBQUMsS0FBSztJQUNuRUYsa0JB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