Skip to content

Commit 584a249

Browse files
authored
test(eth-json-rpc-middleware): Round out test suite (#6967)
## Explanation Adds a number of missing unit test cases to `eth-json-rpc-middleware`, in preparation for migrating the package to `JsonRpcEngineV2`. Opportunistically rearranges some test utilities, e.g. renames `build*` functions to `create*`. ## References N/A ## Checklist - [x] I've updated the test suite for new or updated code as appropriate - [x] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate - [x] I've communicated my changes to consumers by [updating changelogs for packages I've changed](https://github.com/MetaMask/core/tree/main/docs/contributing.md#updating-changelogs), highlighting breaking changes as necessary - [x] I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Adds extensive tests across eth-json-rpc-middleware, refactors test helpers, minor middleware typings/docs tweaks, and raises coverage thresholds. > > - **Tests (eth-json-rpc-middleware)**: > - Add comprehensive unit tests for `block-cache`, `block-ref`, `block-ref-rewrite`, `block-tracker-inspector`, `retryOnEmpty`, `fetch`, `inflight-cache`, `wallet`, and package `index` exports. > - Cover edge cases: skip-cache flags, non-cacheable methods, pending/latest/hex block tags, empty results, transaction/receipt caching conditions, retry exhaustion, execution-reverted errors, and block tracker update logic. > - **Test Utilities**: > - Introduce `createRequest`, `createProviderAndBlockTracker`, `createEngine`, `createFinalMiddlewareWithDefaultResult`, `createSimpleFinalMiddleware`, and stub helpers; rename `build*` helpers to `create*`. > - Remove `test/util/createHitTrackerMiddleware.ts`. > - **Middleware/Internal**: > - Minor refactors and JSDoc/typing improvements in `block-ref-rewrite.ts`, `block-tracker-inspector.ts`, and `retryOnEmpty.ts` (no functional changes intended). > - **Config**: > - Increase Jest coverage thresholds in `jest.config.js` and include `./test` in `tsconfig.json`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 24a3ce9. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
1 parent 029527f commit 584a249

20 files changed

+1755
-1176
lines changed

eslint-warning-thresholds.json

Lines changed: 7 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -153,65 +153,48 @@
153153
"packages/eth-block-tracker/tests/withBlockTracker.ts": {
154154
"@typescript-eslint/no-explicit-any": 1
155155
},
156-
"packages/eth-json-rpc-middleware/src/block-cache.test.ts": {
157-
"jsdoc/require-jsdoc": 1
158-
},
159156
"packages/eth-json-rpc-middleware/src/block-cache.ts": {
160157
"@typescript-eslint/no-explicit-any": 1,
161158
"jsdoc/require-jsdoc": 1,
162159
"no-restricted-syntax": 1
163160
},
164161
"packages/eth-json-rpc-middleware/src/block-ref-rewrite.ts": {
165-
"jsdoc/require-jsdoc": 1
162+
"jsdoc/match-description": 1
166163
},
167164
"packages/eth-json-rpc-middleware/src/block-ref.test.ts": {
168-
"@typescript-eslint/no-explicit-any": 4,
169-
"jest/expect-expect": 2,
170-
"jsdoc/match-description": 1
165+
"jest/expect-expect": 2
171166
},
172167
"packages/eth-json-rpc-middleware/src/block-ref.ts": {
173168
"jsdoc/require-jsdoc": 1
174169
},
175170
"packages/eth-json-rpc-middleware/src/block-tracker-inspector.ts": {
176-
"@typescript-eslint/no-explicit-any": 1,
177171
"jsdoc/match-description": 1,
178-
"jsdoc/require-jsdoc": 2
172+
"jsdoc/require-jsdoc": 1
179173
},
180174
"packages/eth-json-rpc-middleware/src/fetch.test.ts": {
181175
"jsdoc/match-description": 1
182176
},
183177
"packages/eth-json-rpc-middleware/src/fetch.ts": {
184178
"jsdoc/match-description": 1
185179
},
186-
"packages/eth-json-rpc-middleware/src/inflight-cache.test.ts": {
187-
"jsdoc/require-jsdoc": 1
188-
},
189180
"packages/eth-json-rpc-middleware/src/inflight-cache.ts": {
190181
"@typescript-eslint/no-explicit-any": 1,
191182
"jsdoc/require-jsdoc": 4
192183
},
193-
"packages/eth-json-rpc-middleware/src/methods/wallet-request-execution-permissions.test.ts": {
194-
"jsdoc/require-jsdoc": 1
195-
},
196184
"packages/eth-json-rpc-middleware/src/methods/wallet-request-execution-permissions.ts": {
197185
"jsdoc/require-jsdoc": 1
198186
},
199-
"packages/eth-json-rpc-middleware/src/methods/wallet-revoke-execution-permission.test.ts": {
200-
"jsdoc/require-jsdoc": 1
201-
},
202187
"packages/eth-json-rpc-middleware/src/methods/wallet-revoke-execution-permission.ts": {
203188
"jsdoc/require-jsdoc": 1
204189
},
205190
"packages/eth-json-rpc-middleware/src/providerAsMiddleware.ts": {
206191
"jsdoc/require-jsdoc": 1
207192
},
208193
"packages/eth-json-rpc-middleware/src/retryOnEmpty.test.ts": {
209-
"@typescript-eslint/no-explicit-any": 4,
210-
"jest/expect-expect": 5,
211-
"jsdoc/match-description": 4
194+
"jsdoc/match-description": 3
212195
},
213196
"packages/eth-json-rpc-middleware/src/retryOnEmpty.ts": {
214-
"jsdoc/require-jsdoc": 2
197+
"jsdoc/match-description": 2
215198
},
216199
"packages/eth-json-rpc-middleware/src/utils/cache.ts": {
217200
"jsdoc/match-description": 6
@@ -222,9 +205,6 @@
222205
"packages/eth-json-rpc-middleware/src/utils/error.ts": {
223206
"jsdoc/require-jsdoc": 1
224207
},
225-
"packages/eth-json-rpc-middleware/src/utils/normalize.test.ts": {
226-
"jsdoc/require-jsdoc": 1
227-
},
228208
"packages/eth-json-rpc-middleware/src/utils/normalize.ts": {
229209
"jsdoc/match-description": 3
230210
},
@@ -234,9 +214,6 @@
234214
"packages/eth-json-rpc-middleware/src/utils/validation.ts": {
235215
"jsdoc/require-jsdoc": 4
236216
},
237-
"packages/eth-json-rpc-middleware/src/wallet.test.ts": {
238-
"jsdoc/require-jsdoc": 1
239-
},
240217
"packages/eth-json-rpc-middleware/src/wallet.ts": {
241218
"@typescript-eslint/no-explicit-any": 2,
242219
"@typescript-eslint/prefer-nullish-coalescing": 5,
@@ -247,12 +224,9 @@
247224
"@typescript-eslint/no-explicit-any": 3,
248225
"jsdoc/match-description": 2
249226
},
250-
"packages/eth-json-rpc-middleware/test/util/createHitTrackerMiddleware.ts": {
251-
"jsdoc/require-jsdoc": 1
252-
},
253227
"packages/eth-json-rpc-middleware/test/util/helpers.ts": {
254-
"@typescript-eslint/no-explicit-any": 1,
255-
"jsdoc/match-description": 9
228+
"@typescript-eslint/no-explicit-any": 5,
229+
"jsdoc/match-description": 11
256230
},
257231
"packages/eth-json-rpc-provider/src/safe-event-emitter-provider.test.ts": {
258232
"import-x/namespace": 1

packages/eth-json-rpc-middleware/jest.config.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ module.exports = merge(baseConfig, {
2020
// An object that configures minimum threshold enforcement for coverage results
2121
coverageThreshold: {
2222
global: {
23-
branches: 67.25,
24-
functions: 81.57,
25-
lines: 79.71,
26-
statements: 79.83,
23+
branches: 81.85,
24+
functions: 90.66,
25+
lines: 89.13,
26+
statements: 89.2,
2727
},
2828
},
2929
});

0 commit comments

Comments
 (0)