diff --git a/address.json b/address.json index 51c2d847b..54a0fd264 100644 --- a/address.json +++ b/address.json @@ -114,6 +114,7 @@ "polkadot-wallet.org": [ "12nGrKnQprcq19X8zdVevfXZPNgD4AoDnsAwxs6FoEeThudY", "13dJM2sNwVQc8jsEazupzaqaFjTNJo492qL6RSVuT41SLLAY", + "14wHn5YYdrfeBibctXsctFAyDCWM6A9t38JyYVsnJGExmR5P", "15izdazFKpSYg8ihRoS8opxWn5UA19UAQYdwRCodJ4Q9JNEd", "15Mudzn4no9pY24o3mhbT4Gw3v5WYxMbzXre4MhVRPMFhcLX", "15Y9gquGY3dWENabfYRcWo4Bt45dPvUDhJy97dM1iR6DqrDp", diff --git a/jest.config.cjs b/jest.config.cjs index fe3130af1..5cf9920ef 100644 --- a/jest.config.cjs +++ b/jest.config.cjs @@ -11,5 +11,6 @@ module.exports = { '/packages/phishing/build' ], testEnvironment: 'jsdom', + testTimeout: 2 * 60 * 1000, transformIgnorePatterns: ['/node_modules/(?!@polkadot|@babel/runtime/helpers/esm/)'] }; diff --git a/package.json b/package.json index c3e5ff930..966e88f59 100644 --- a/package.json +++ b/package.json @@ -16,10 +16,10 @@ "build:release:ipfs": "node scripts/ipfsUpload.mjs", "lint": "polkadot-dev-run-lint", "clean": "polkadot-dev-clean-build", - "phishing:addrcheck": "polkadot-dev-run-test packages/phishing/src/addrcheck", - "phishing:crosscheck": "polkadot-dev-run-test packages/phishing/src/crosscheck", + "phishing:addrcheck": "polkadot-dev-run-test --runInBand --detectOpenHandles packages/phishing/src/addrcheck", + "phishing:crosscheck": "polkadot-dev-run-test --runInBand --detectOpenHandles packages/phishing/src/crosscheck", "postinstall": "polkadot-dev-yarn-only", - "test": "polkadot-dev-run-test --coverage --runInBand --testPathIgnorePatterns addrcheck --testPathIgnorePatterns crosscheck" + "test": "polkadot-dev-run-test --coverage --runInBand --detectOpenHandles --testPathIgnorePatterns addrcheck --testPathIgnorePatterns crosscheck" }, "devDependencies": { "@babel/core": "^7.14.3", diff --git a/packages/phishing/src/addrcheck.spec.ts b/packages/phishing/src/addrcheck.spec.ts index 6530bd241..d22c8e78f 100644 --- a/packages/phishing/src/addrcheck.spec.ts +++ b/packages/phishing/src/addrcheck.spec.ts @@ -31,7 +31,12 @@ async function loopSome (site: string, matcher: () => Promise): // console.error(error); } - await new Promise((resolve) => setTimeout(() => resolve(true), Math.floor((Math.random() * 750) + 1000))); + await new Promise((resolve) => + setTimeout( + () => resolve(true), + Math.floor((Math.random() * 750) + 1000) + ) + ); } return [site, found]; diff --git a/packages/phishing/src/fetch.ts b/packages/phishing/src/fetch.ts index 3d8afbb74..0e22e043d 100644 --- a/packages/phishing/src/fetch.ts +++ b/packages/phishing/src/fetch.ts @@ -6,10 +6,25 @@ import { fetch } from '@polkadot/x-fetch'; // a fetch with a 2s timeout export async function fetchWithTimeout (url: string, timeout = 2000): Promise { const controller = new AbortController(); - const id = setTimeout(() => controller.abort(), timeout); - const response = await fetch(url, { signal: controller.signal }); + let isAborted = false; + const id = setTimeout((): void => { + console.log(`Timeout on ${url}`); - clearTimeout(id); + isAborted = true; + controller.abort(); + }, timeout); - return response; + try { + const response = await fetch(url, { signal: controller.signal }); + + clearTimeout(id); + + return response; + } catch (error) { + if (!isAborted) { + clearTimeout(id); + } + + throw error; + } }