UNPKG

@metamask/snaps-simulation

Version:

A simulation framework for MetaMask Snaps, enabling headless testing of Snaps in a controlled environment

27 lines 968 B
import { createAsyncMiddleware } from "@metamask/json-rpc-engine"; import { getJsonRpcMocks, removeJsonRpcMock } from "../store/mocks.mjs"; /** * Create a middleware for handling JSON-RPC methods that have been mocked. * * @param store - The Redux store to use. * @returns A middleware function. */ export function createMockMiddleware(store) { return createAsyncMiddleware(async (request, response, next) => { const mocks = getJsonRpcMocks(store.getState()); const keys = Object.keys(mocks); for (const key of keys) { const { implementation, once } = mocks[key]; const result = await implementation(request); if (result !== undefined) { if (once) { store.dispatch(removeJsonRpcMock(key)); } response.result = result; return; } } await next(); }); } //# sourceMappingURL=mock.mjs.map