UNPKG

@metamask/snaps-simulation

Version:

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

31 lines 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMockMiddleware = void 0; const json_rpc_engine_1 = require("@metamask/json-rpc-engine"); const mocks_1 = require("../store/mocks.cjs"); /** * Create a middleware for handling JSON-RPC methods that have been mocked. * * @param store - The Redux store to use. * @returns A middleware function. */ function createMockMiddleware(store) { return (0, json_rpc_engine_1.createAsyncMiddleware)(async (request, response, next) => { const mocks = (0, mocks_1.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((0, mocks_1.removeJsonRpcMock)(key)); } response.result = result; return; } } await next(); }); } exports.createMockMiddleware = createMockMiddleware; //# sourceMappingURL=mock.cjs.map