UNPKG

@data-client/test

Version:
37 lines (36 loc) 4.9 kB
'use client'; import { ControllerContext, useController } from '@data-client/react'; import { useMemo } from 'react'; import React from 'react'; import { MockController } from './MockController.js'; import { jsx as _jsx } from "react/jsx-runtime"; /** Can be used to mock responses based on fixtures provided. * * <MockResolver fixtures={postFixtures[state]}><MyComponent /></MockResolver> * * Place below <DataProvider /> and above any components you want to mock. */ export default function MockResolver({ children, fixtures, getInitialInterceptorData = () => ({}) }) { const controller = useController(); const controllerInterceptor = useMemo(() => { var _controller$_dispatch; const MockedController = MockController(controller.constructor, fixtures ? { fixtures, getInitialInterceptorData } : {}); const controllerInterceptor = new MockedController({ ...controller, dispatch: (_controller$_dispatch = controller['_dispatch']) != null ? _controller$_dispatch : controller.dispatch }); return controllerInterceptor; }, [controller, fixtures, getInitialInterceptorData]); return /*#__PURE__*/_jsx(ControllerContext.Provider, { value: controllerInterceptor, children: children }); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb250cm9sbGVyQ29udGV4dCIsInVzZUNvbnRyb2xsZXIiLCJ1c2VNZW1vIiwiUmVhY3QiLCJNb2NrQ29udHJvbGxlciIsImpzeCIsIl9qc3giLCJNb2NrUmVzb2x2ZXIiLCJjaGlsZHJlbiIsImZpeHR1cmVzIiwiZ2V0SW5pdGlhbEludGVyY2VwdG9yRGF0YSIsImNvbnRyb2xsZXIiLCJjb250cm9sbGVySW50ZXJjZXB0b3IiLCJfY29udHJvbGxlciRfZGlzcGF0Y2giLCJNb2NrZWRDb250cm9sbGVyIiwiY29uc3RydWN0b3IiLCJkaXNwYXRjaCIsIlByb3ZpZGVyIiwidmFsdWUiXSwic291cmNlcyI6WyIuLi9zcmMvTW9ja1Jlc29sdmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyBDb250cm9sbGVyQ29udGV4dCwgdXNlQ29udHJvbGxlciB9IGZyb20gJ0BkYXRhLWNsaWVudC9yZWFjdCc7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgTW9ja0NvbnRyb2xsZXIgfSBmcm9tICcuL01vY2tDb250cm9sbGVyLmpzJztcbmltcG9ydCB7IE1vY2tQcm9wcyB9IGZyb20gJy4vbW9ja1R5cGVzLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBNb2NrUmVzb2x2ZXJQcm9wczxUPiBleHRlbmRzIE1vY2tQcm9wczxUPiB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG4gIHNpbGVuY2VNaXNzaW5nPzogYm9vbGVhbjtcbn1cblxuLyoqIENhbiBiZSB1c2VkIHRvIG1vY2sgcmVzcG9uc2VzIGJhc2VkIG9uIGZpeHR1cmVzIHByb3ZpZGVkLlxuICpcbiAqIDxNb2NrUmVzb2x2ZXIgZml4dHVyZXM9e3Bvc3RGaXh0dXJlc1tzdGF0ZV19PjxNeUNvbXBvbmVudCAvPjwvTW9ja1Jlc29sdmVyPlxuICpcbiAqIFBsYWNlIGJlbG93IDxEYXRhUHJvdmlkZXIgLz4gYW5kIGFib3ZlIGFueSBjb21wb25lbnRzIHlvdSB3YW50IHRvIG1vY2suXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1vY2tSZXNvbHZlcjxUID0gYW55Pih7XG4gIGNoaWxkcmVuLFxuICBmaXh0dXJlcyxcbiAgZ2V0SW5pdGlhbEludGVyY2VwdG9yRGF0YSA9ICgpID0+ICh7fSkgYXMgYW55LFxufTogTW9ja1Jlc29sdmVyUHJvcHM8VD4pIHtcbiAgY29uc3QgY29udHJvbGxlciA9IHVzZUNvbnRyb2xsZXIoKTtcblxuICBjb25zdCBjb250cm9sbGVySW50ZXJjZXB0b3IgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBNb2NrZWRDb250cm9sbGVyID0gTW9ja0NvbnRyb2xsZXIoXG4gICAgICBjb250cm9sbGVyLmNvbnN0cnVjdG9yIGFzIGFueSxcbiAgICAgIGZpeHR1cmVzID9cbiAgICAgICAge1xuICAgICAgICAgIGZpeHR1cmVzLFxuICAgICAgICAgIGdldEluaXRpYWxJbnRlcmNlcHRvckRhdGEsXG4gICAgICAgIH1cbiAgICAgIDoge30sXG4gICAgKTtcbiAgICBjb25zdCBjb250cm9sbGVySW50ZXJjZXB0b3IgPSBuZXcgTW9ja2VkQ29udHJvbGxlcih7XG4gICAgICAuLi5jb250cm9sbGVyLFxuICAgICAgZGlzcGF0Y2g6IGNvbnRyb2xsZXJbJ19kaXNwYXRjaCddID8/IGNvbnRyb2xsZXIuZGlzcGF0Y2gsXG4gICAgfSk7XG4gICAgcmV0dXJuIGNvbnRyb2xsZXJJbnRlcmNlcHRvcjtcbiAgfSwgW2NvbnRyb2xsZXIsIGZpeHR1cmVzLCBnZXRJbml0aWFsSW50ZXJjZXB0b3JEYXRhXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udHJvbGxlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRyb2xsZXJJbnRlcmNlcHRvcn0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Db250cm9sbGVyQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTs7QUFDWixTQUFTQSxpQkFBaUIsRUFBRUMsYUFBYSxRQUFRLG9CQUFvQjtBQUNyRSxTQUFTQyxPQUFPLFFBQVEsT0FBTztBQUMvQixPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUV6QixTQUFTQyxjQUFjLFFBQVEscUJBQXFCO0FBQUMsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBUXJEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsU0FBU0MsWUFBWUEsQ0FBVTtFQUM1Q0MsUUFBUTtFQUNSQyxRQUFRO0VBQ1JDLHlCQUF5QixHQUFHQSxDQUFBLE1BQU8sQ0FBQyxDQUFDO0FBQ2pCLENBQUMsRUFBRTtFQUN2QixNQUFNQyxVQUFVLEdBQUdWLGFBQWEsQ0FBQyxDQUFDO0VBRWxDLE1BQU1XLHFCQUFxQixHQUFHVixPQUFPLENBQUMsTUFBTTtJQUFBLElBQUFXLHFCQUFBO0lBQzFDLE1BQU1DLGdCQUFnQixHQUFHVixjQUFjLENBQ3JDTyxVQUFVLENBQUNJLFdBQVcsRUFDdEJOLFFBQVEsR0FDTjtNQUNFQSxRQUFRO01BQ1JDO0lBQ0YsQ0FBQyxHQUNELENBQUMsQ0FDTCxDQUFDO0lBQ0QsTUFBTUUscUJBQXFCLEdBQUcsSUFBSUUsZ0JBQWdCLENBQUM7TUFDakQsR0FBR0gsVUFBVTtNQUNiSyxRQUFRLEdBQUFILHFCQUFBLEdBQUVGLFVBQVUsQ0FBQyxXQUFXLENBQUMsWUFBQUUscUJBQUEsR0FBSUYsVUFBVSxDQUFDSztJQUNsRCxDQUFDLENBQUM7SUFDRixPQUFPSixxQkFBcUI7RUFDOUIsQ0FBQyxFQUFFLENBQUNELFVBQVUsRUFBRUYsUUFBUSxFQUFFQyx5QkFBeUIsQ0FBQyxDQUFDO0VBRXJELG9CQUNFSixJQUFBLENBQUNOLGlCQUFpQixDQUFDaUIsUUFBUTtJQUFDQyxLQUFLLEVBQUVOLHFCQUFzQjtJQUFBSixRQUFBLEVBQ3REQTtFQUFRLENBQ2lCLENBQUM7QUFFakMiLCJpZ25vcmVMaXN0IjpbXX0=