diff --git a/app/soapbox/__mocks__/api.ts b/app/soapbox/__mocks__/api.ts index c164ba63c..060846c94 100644 --- a/app/soapbox/__mocks__/api.ts +++ b/app/soapbox/__mocks__/api.ts @@ -7,7 +7,7 @@ import type { AxiosInstance, AxiosResponse } from 'axios'; const api = jest.requireActual('../api') as Record; let mocks: Array = []; -export const __stub = (func: Function) => mocks.push(func); +export const __stub = (func: (mock: MockAdapter) => void) => mocks.push(func); export const __clear = (): Function[] => mocks = []; const setupMock = (axios: AxiosInstance) => { diff --git a/app/soapbox/api.ts b/app/soapbox/api.ts index 33cd803ad..bdcaf53d8 100644 --- a/app/soapbox/api.ts +++ b/app/soapbox/api.ts @@ -13,6 +13,8 @@ import * as BuildConfig from 'soapbox/build_config'; import { RootState } from 'soapbox/store'; import { getAccessToken, getAppToken, isURL, parseBaseURL } from 'soapbox/utils/auth'; +import type MockAdapter from 'axios-mock-adapter'; + /** Parse Link headers, mostly for pagination. @see {@link https://www.npmjs.com/package/http-link-header} @@ -90,3 +92,7 @@ export default (getState: () => RootState, authType: string = 'user'): AxiosInst return baseClient(accessToken, baseURL); }; + +// The Jest mock exports these, so they're needed for TypeScript. +export const __stub = (_func: (mock: MockAdapter) => void) => 0; +export const __clear = (): Function[] => []; diff --git a/dangerfile.ts b/dangerfile.ts index cf842bb8d..4a25f80f7 100644 --- a/dangerfile.ts +++ b/dangerfile.ts @@ -2,7 +2,7 @@ import { danger, warn, message } from 'danger'; const docs = danger.git.fileMatch('docs/**/*.md'); const app = danger.git.fileMatch('app/**/*.(js|ts|tsx)'); -const tests = danger.git.fileMatch('*/__tests__/*'); +const tests = danger.git.fileMatch('**/__tests__/**'); if (docs.edited) { message('Thanks - We :heart: our [documentarians](http://www.writethedocs.org/)!'); diff --git a/package.json b/package.json index 6c3c7cb3b..02440ebe1 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "array-includes": "^3.0.3", "autoprefixer": "^10.4.2", "axios": "^0.27.2", - "axios-mock-adapter": "^1.18.1", + "axios-mock-adapter": "^1.21.1", "babel-loader": "^8.2.5", "babel-plugin-lodash": "^3.3.4", "babel-plugin-preval": "^5.1.0", diff --git a/yarn.lock b/yarn.lock index c7801ae82..33caf4583 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3435,13 +3435,12 @@ axe-core@^4.0.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.3.tgz#b55cd8e8ddf659fe89b064680e1c6a4dceab0325" integrity sha512-/lqqLAmuIPi79WYfRpy2i8z+x+vxU3zX2uAm0gs1q52qTuKwolOj1P8XbufpXcsydrpKx2yGn2wzAnxCMV86QA== -axios-mock-adapter@^1.18.1: - version "1.20.0" - resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.20.0.tgz#21f5b4b625306f43e8c05673616719da86e20dcb" - integrity sha512-shZRhTjLP0WWdcvHKf3rH3iW9deb3UdKbdnKUoHmmsnBhVXN3sjPJM6ZvQ2r/ywgvBVQrMnjrSyQab60G1sr2w== +axios-mock-adapter@^1.21.1: + version "1.21.1" + resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.21.1.tgz#efe7e46ad1b0d2acd72188afa91c5720660777b3" + integrity sha512-Pdm7nZuhkz/DSucQ4Bbo9qVBqfm9j7ev9ycTvIXHqvAjnJEjWPHKYfTfpounVp8MwjFFSHXGS7hCkTwAswtSTA== dependencies: fast-deep-equal "^3.1.3" - is-blob "^2.1.0" is-buffer "^2.0.5" axios@^0.27.2: @@ -6583,11 +6582,6 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-blob@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-blob/-/is-blob-2.1.0.tgz#e36cd82c90653f1e1b930f11baf9c64216a05385" - integrity sha512-SZ/fTft5eUhQM6oF/ZaASFDEdbFVe89Imltn9uZr03wdKMcWNVYSMjQPFtg05QuNkt5l5c135ElvXEQG0rk4tw== - is-boolean-object@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"