UNPKG

@data-client/test

Version:
45 lines 5 kB
import { Controller, __INTERNAL__ } from '@data-client/react'; const { initialState, createReducer } = __INTERNAL__; export default function mockInitialState(fixtures = []) { const actions = []; const dispatch = action => { actions.push(action); return Promise.resolve(); }; const controller = new Controller({ dispatch }); const reducer = createReducer(controller); fixtures.forEach(fixture => { dispatchFixture(fixture, fixture.args, controller); }); return actions.reduce(reducer, initialState); } function dispatchFixture(fixture, args, controller, fetchedAt) { // eslint-disable-next-line prefer-const let { endpoint } = fixture; const { response, error } = fixture; if (controller.resolve) { controller.resolve(endpoint, { args, response, error, fetchedAt: fetchedAt ?? Date.now() }); } else { if (error === true) { controller.setError(endpoint, ...args, response); } else { controller.setResponse(endpoint, ...args, response); } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb250cm9sbGVyIiwiX19JTlRFUk5BTF9fIiwiaW5pdGlhbFN0YXRlIiwiY3JlYXRlUmVkdWNlciIsIm1vY2tJbml0aWFsU3RhdGUiLCJmaXh0dXJlcyIsImFjdGlvbnMiLCJkaXNwYXRjaCIsImFjdGlvbiIsInB1c2giLCJQcm9taXNlIiwicmVzb2x2ZSIsImNvbnRyb2xsZXIiLCJyZWR1Y2VyIiwiZm9yRWFjaCIsImZpeHR1cmUiLCJkaXNwYXRjaEZpeHR1cmUiLCJhcmdzIiwicmVkdWNlIiwiZmV0Y2hlZEF0IiwiZW5kcG9pbnQiLCJyZXNwb25zZSIsImVycm9yIiwiRGF0ZSIsIm5vdyIsInNldEVycm9yIiwic2V0UmVzcG9uc2UiXSwic291cmNlcyI6WyIuLi9zcmMvbW9ja1N0YXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFNldEFjdGlvbixcbiAgU3RhdGUsXG4gIEFjdGlvblR5cGVzLFxuICBDb250cm9sbGVyLFxuICBfX0lOVEVSTkFMX18sXG59IGZyb20gJ0BkYXRhLWNsaWVudC9yZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgRml4dHVyZSB9IGZyb20gJy4vZml4dHVyZVR5cGVzLmpzJztcblxuY29uc3QgeyBpbml0aWFsU3RhdGUsIGNyZWF0ZVJlZHVjZXIgfSA9IF9fSU5URVJOQUxfXztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbW9ja0luaXRpYWxTdGF0ZShcbiAgZml4dHVyZXM6IEZpeHR1cmVbXSA9IFtdLFxuKTogU3RhdGU8dW5rbm93bj4ge1xuICBjb25zdCBhY3Rpb25zOiBTZXRBY3Rpb25bXSA9IFtdO1xuICBjb25zdCBkaXNwYXRjaCA9IChhY3Rpb246IGFueSkgPT4ge1xuICAgIGFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfTtcbiAgY29uc3QgY29udHJvbGxlciA9IG5ldyBDb250cm9sbGVyKHsgZGlzcGF0Y2ggfSk7XG4gIGNvbnN0IHJlZHVjZXI6IChcbiAgICBzdGF0ZTogU3RhdGU8dW5rbm93bj4gfCB1bmRlZmluZWQsXG4gICAgYWN0aW9uOiBBY3Rpb25UeXBlcyxcbiAgKSA9PiBTdGF0ZTx1bmtub3duPiA9IGNyZWF0ZVJlZHVjZXIoY29udHJvbGxlcik7XG5cbiAgZml4dHVyZXMuZm9yRWFjaChmaXh0dXJlID0+IHtcbiAgICBkaXNwYXRjaEZpeHR1cmUoZml4dHVyZSwgZml4dHVyZS5hcmdzLCBjb250cm9sbGVyKTtcbiAgfSk7XG4gIHJldHVybiBhY3Rpb25zLnJlZHVjZShyZWR1Y2VyLCBpbml0aWFsU3RhdGUpO1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaEZpeHR1cmUoXG4gIGZpeHR1cmU6IEZpeHR1cmUsXG4gIGFyZ3M6IGFueVtdLFxuICBjb250cm9sbGVyOiBDb250cm9sbGVyLFxuICBmZXRjaGVkQXQ/OiBudW1iZXIsXG4pIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICBsZXQgeyBlbmRwb2ludCB9ID0gZml4dHVyZTtcbiAgY29uc3QgeyByZXNwb25zZSwgZXJyb3IgfSA9IGZpeHR1cmU7XG4gIGlmIChjb250cm9sbGVyLnJlc29sdmUpIHtcbiAgICBjb250cm9sbGVyLnJlc29sdmUoZW5kcG9pbnQsIHtcbiAgICAgIGFyZ3MsXG4gICAgICByZXNwb25zZSxcbiAgICAgIGVycm9yLFxuICAgICAgZmV0Y2hlZEF0OiBmZXRjaGVkQXQgPz8gRGF0ZS5ub3coKSxcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoZXJyb3IgPT09IHRydWUpIHtcbiAgICAgIGNvbnRyb2xsZXIuc2V0RXJyb3IoZW5kcG9pbnQsIC4uLmFyZ3MsIHJlc3BvbnNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udHJvbGxlci5zZXRSZXNwb25zZShlbmRwb2ludCwgLi4uYXJncywgcmVzcG9uc2UpO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUlFQSxVQUFVLEVBQ1ZDLFlBQVksUUFDUCxvQkFBb0I7QUFJM0IsTUFBTTtFQUFFQyxZQUFZO0VBQUVDO0FBQWMsQ0FBQyxHQUFHRixZQUFZO0FBRXBELGVBQWUsU0FBU0csZ0JBQWdCQSxDQUN0Q0MsUUFBbUIsR0FBRyxFQUFFLEVBQ1I7RUFDaEIsTUFBTUMsT0FBb0IsR0FBRyxFQUFFO0VBQy9CLE1BQU1DLFFBQVEsR0FBSUMsTUFBVyxJQUFLO0lBQ2hDRixPQUFPLENBQUNHLElBQUksQ0FBQ0QsTUFBTSxDQUFDO0lBQ3BCLE9BQU9FLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUM7RUFDMUIsQ0FBQztFQUNELE1BQU1DLFVBQVUsR0FBRyxJQUFJWixVQUFVLENBQUM7SUFBRU87RUFBUyxDQUFDLENBQUM7RUFDL0MsTUFBTU0sT0FHYSxHQUFHVixhQUFhLENBQUNTLFVBQVUsQ0FBQztFQUUvQ1AsUUFBUSxDQUFDUyxPQUFPLENBQUNDLE9BQU8sSUFBSTtJQUMxQkMsZUFBZSxDQUFDRCxPQUFPLEVBQUVBLE9BQU8sQ0FBQ0UsSUFBSSxFQUFFTCxVQUFVLENBQUM7RUFDcEQsQ0FBQyxDQUFDO0VBQ0YsT0FBT04sT0FBTyxDQUFDWSxNQUFNLENBQUNMLE9BQU8sRUFBRVgsWUFBWSxDQUFDO0FBQzlDO0FBRUEsU0FBU2MsZUFBZUEsQ0FDdEJELE9BQWdCLEVBQ2hCRSxJQUFXLEVBQ1hMLFVBQXNCLEVBQ3RCTyxTQUFrQixFQUNsQjtFQUNBO0VBQ0EsSUFBSTtJQUFFQztFQUFTLENBQUMsR0FBR0wsT0FBTztFQUMxQixNQUFNO0lBQUVNLFFBQVE7SUFBRUM7RUFBTSxDQUFDLEdBQUdQLE9BQU87RUFDbkMsSUFBSUgsVUFBVSxDQUFDRCxPQUFPLEVBQUU7SUFDdEJDLFVBQVUsQ0FBQ0QsT0FBTyxDQUFDUyxRQUFRLEVBQUU7TUFDM0JILElBQUk7TUFDSkksUUFBUTtNQUNSQyxLQUFLO01BQ0xILFNBQVMsRUFBRUEsU0FBUyxJQUFJSSxJQUFJLENBQUNDLEdBQUcsQ0FBQztJQUNuQyxDQUFDLENBQUM7RUFDSixDQUFDLE1BQU07SUFDTCxJQUFJRixLQUFLLEtBQUssSUFBSSxFQUFFO01BQ2xCVixVQUFVLENBQUNhLFFBQVEsQ0FBQ0wsUUFBUSxFQUFFLEdBQUdILElBQUksRUFBRUksUUFBUSxDQUFDO0lBQ2xELENBQUMsTUFBTTtNQUNMVCxVQUFVLENBQUNjLFdBQVcsQ0FBQ04sUUFBUSxFQUFFLEdBQUdILElBQUksRUFBRUksUUFBUSxDQUFDO0lBQ3JEO0VBQ0Y7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==