@metamask/snaps-simulation
Version:
A simulation framework for MetaMask Snaps, enabling headless testing of Snaps in a controlled environment
1 lines • 1.9 kB
Source Map (JSON)
{"version":3,"file":"mock.cjs","sourceRoot":"","sources":["../../src/middleware/mock.ts"],"names":[],"mappings":";;;AAAA,+DAGmC;AAInC,8CAAoE;AAEpE;;;;;GAKG;AACH,SAAgB,oBAAoB,CAClC,KAAY;IAEZ,OAAO,IAAA,uCAAqB,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC7D,MAAM,KAAK,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;YAE7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,IAAI,EAAE,CAAC;oBACT,KAAK,CAAC,QAAQ,CAAC,IAAA,yBAAiB,EAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,CAAC;gBAED,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;gBACzB,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAtBD,oDAsBC","sourcesContent":["import {\n createAsyncMiddleware,\n type JsonRpcMiddleware,\n} from '@metamask/json-rpc-engine';\nimport type { Json, JsonRpcParams } from '@metamask/utils';\n\nimport type { Store } from '../store';\nimport { getJsonRpcMocks, removeJsonRpcMock } from '../store/mocks';\n\n/**\n * Create a middleware for handling JSON-RPC methods that have been mocked.\n *\n * @param store - The Redux store to use.\n * @returns A middleware function.\n */\nexport function createMockMiddleware(\n store: Store,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n return createAsyncMiddleware(async (request, response, next) => {\n const mocks = getJsonRpcMocks(store.getState());\n const keys = Object.keys(mocks);\n for (const key of keys) {\n const { implementation, once } = mocks[key];\n const result = await implementation(request);\n\n if (result !== undefined) {\n if (once) {\n store.dispatch(removeJsonRpcMock(key));\n }\n\n response.result = result;\n return;\n }\n }\n\n await next();\n });\n}\n"]}