diff --git a/package-lock.json b/package-lock.json index fc0051e67..c73ee1b00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@octokit/types": "^13.0.0", "@vitest/coverage-v8": "^3.0.0", "esbuild": "^0.24.0", - "fetch-mock": "^11.0.0", + "fetch-mock": "^12.0.0", "glob": "^11.0.0", "prettier": "3.4.2", "semantic-release": "^24.0.0", @@ -1464,6 +1464,25 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/glob-to-regexp": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@types/glob-to-regexp/-/glob-to-regexp-0.4.4.tgz", + "integrity": "sha512-nDKoaKJYbnn1MZxUY0cA1bPmmgZbg0cTq7Rh13d0KWYNOiKbqoR+2d89SnRPszGh7ROzSwZ/GOjZ4jPbmmZ6Eg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", + "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", @@ -3146,25 +3165,20 @@ } }, "node_modules/fetch-mock": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/fetch-mock/-/fetch-mock-11.0.0.tgz", - "integrity": "sha512-AD2Gh1xDQBLBs4iJpSxar19cTOH/Gu9hf1ko2J4hHW1UbR+ZHOfmIAqfT+Wlku4U8cYbffjaTbGv7mqe5kPi3w==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/fetch-mock/-/fetch-mock-12.2.0.tgz", + "integrity": "sha512-XjgxM582kB0SzPOqH2UdGTwSqga8A8aBPjxcYr0wTeOlCWpZoK6zBrPzltECUTu6Zt3VTWafmKF599LN9BRN5Q==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^4.1.1", + "@types/glob-to-regexp": "^0.4.4", "dequal": "^2.0.3", - "globrex": "^0.1.2", - "is-subset": "^0.1.1", + "glob-to-regexp": "^0.4.1", + "is-subset-of": "^3.1.10", "regexparam": "^3.0.0" }, "engines": { - "node": ">=8.0.0" - }, - "peerDependenciesMeta": { - "node-fetch": { - "optional": true - } + "node": ">=18.11.0" } }, "node_modules/figures": { @@ -3458,6 +3472,13 @@ "node": ">= 6" } }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/globalthis": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", @@ -3522,13 +3543,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true, - "license": "MIT" - }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -4107,12 +4121,16 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-subset": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==", + "node_modules/is-subset-of": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/is-subset-of/-/is-subset-of-3.1.10.tgz", + "integrity": "sha512-avvaYgVmYWyaZ1NDFiv4y9JGkrE2je3op1Po4VYKKJKR8H2qVPsg1GZuuXl5elCTxTlwAIsrAjWAs4BVrISFRw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "typedescriptor": "3.0.2" + } }, "node_modules/is-symbol": { "version": "1.0.4", @@ -9202,6 +9220,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typedescriptor": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/typedescriptor/-/typedescriptor-3.0.2.tgz", + "integrity": "sha512-hyVbaCUd18UiXk656g/imaBLMogpdijIEpnhWYrSda9rhvO4gOU16n2nh7xG5lv/rjumnZzGOdz0CEGTmFe0fQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT" + }, "node_modules/typescript": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz", @@ -9246,6 +9272,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/unicode-emoji-modifier-base": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", diff --git a/package.json b/package.json index f4fae9efa..de1c2f3ff 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@octokit/types": "^13.0.0", "@vitest/coverage-v8": "^3.0.0", "esbuild": "^0.24.0", - "fetch-mock": "^11.0.0", + "fetch-mock": "^12.0.0", "glob": "^11.0.0", "prettier": "3.4.2", "semantic-release": "^24.0.0", diff --git a/test/index.test.ts b/test/index.test.ts index 9ae637115..affed4506 100644 --- a/test/index.test.ts +++ b/test/index.test.ts @@ -156,18 +156,21 @@ test('auth.hook(request, "GET /user")', async () => { "user-agent": "test", }; - const matchGetUser: fetchMock.MockMatcherFunction = (url, { headers }) => { - expect(url).toEqual("https://api.github.com/user"); - expect(headers).toStrictEqual(expectedRequestHeaders); - return true; - }; + const mock = fetchMock.createInstance().getOnce( + ({ url, options: { headers } }) => { + expect(url).toEqual("https://api.github.com/user"); + expect(headers).toStrictEqual(expectedRequestHeaders); + return true; + }, + { id: 123 }, + ); const requestMock = request.defaults({ headers: { "user-agent": "test", }, request: { - fetch: fetchMock.sandbox().getOnce(matchGetUser, { id: 123 }), + fetch: mock.fetchHandler, }, }); @@ -185,18 +188,21 @@ test("auth.hook() with JWT", async () => { "user-agent": "test", }; - const matchGetUser: fetchMock.MockMatcherFunction = (url, { headers }) => { - expect(url).toEqual("https://api.github.com/user"); - expect(headers).toStrictEqual(expectedRequestHeaders); - return true; - }; + const mock = fetchMock.createInstance().getOnce( + ({ url, options: { headers } }) => { + expect(url).toEqual("https://api.github.com/user"); + expect(headers).toStrictEqual(expectedRequestHeaders); + return true; + }, + { id: 123 }, + ); const requestMock = request.defaults({ headers: { "user-agent": "test", }, request: { - fetch: fetchMock.sandbox().getOnce(matchGetUser, { id: 123 }), + fetch: mock.fetchHandler, }, });