From 6dd7557b508d1e7a45b7e40a1fe8059abaa1ec89 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Wed, 22 Jan 2020 14:45:20 +0100 Subject: [PATCH 01/12] fix: use graceful-fs all over instead of monkey patching fs --- .eslintrc.js | 7 +++++++ CHANGELOG.md | 3 +-- e2e/Utils.ts | 2 +- e2e/__tests__/clearCache.test.ts | 2 +- e2e/__tests__/coverageHandlebars.test.ts | 2 +- e2e/__tests__/coverageRemapping.test.ts | 2 +- e2e/__tests__/coverageReport.test.ts | 2 +- e2e/__tests__/coverageTransformInstrumented.test.ts | 2 +- e2e/__tests__/globalSetup.test.ts | 2 +- e2e/__tests__/globalTeardown.test.ts | 2 +- e2e/__tests__/jsonReporter.test.ts | 2 +- e2e/__tests__/setupFilesAfterEnvConfig.test.ts | 2 +- e2e/__tests__/snapshot.test.ts | 2 +- e2e/__tests__/snapshotResolver.test.ts | 2 +- e2e/__tests__/testEnvironmentAsync.test.ts | 2 +- e2e/__tests__/testRetries.test.ts | 2 +- e2e/__tests__/toMatchInlineSnapshot.test.ts | 3 ++- e2e/__tests__/toMatchSnapshotWithStringSerializer.test.ts | 2 +- e2e/__tests__/toThrowErrorMatchingInlineSnapshot.test.ts | 2 +- e2e/__tests__/toThrowErrorMatchingSnapshot.test.ts | 2 +- e2e/native-esm/__tests__/native-esm.test.js | 2 ++ e2e/runJest.ts | 2 +- packages/babel-jest/package.json | 4 +++- packages/babel-jest/src/index.ts | 2 +- packages/jest-circus/package.json | 4 +++- packages/jest-circus/src/__mocks__/testUtils.ts | 2 +- packages/jest-cli/package.json | 2 ++ packages/jest-cli/src/init/__tests__/init.test.js | 4 ++-- packages/jest-cli/src/init/index.ts | 2 +- packages/jest-config/package.json | 2 ++ packages/jest-config/src/__tests__/normalize.test.js | 2 +- packages/jest-config/src/index.ts | 2 +- packages/jest-config/src/normalize.ts | 2 +- packages/jest-config/src/readConfigFileAndSetRootDir.ts | 2 +- packages/jest-config/src/resolveConfigPath.ts | 2 +- packages/jest-core/src/__tests__/SearchSource.test.ts | 2 +- .../jest-core/src/__tests__/watch-file-changes.test.ts | 2 +- packages/jest-core/src/cli/index.ts | 4 ---- packages/jest-haste-map/src/__tests__/index.test.js | 1 - .../jest-haste-map/src/crawlers/__tests__/node.test.js | 6 +++--- packages/jest-haste-map/src/crawlers/node.ts | 2 +- packages/jest-haste-map/src/index.ts | 2 +- packages/jest-haste-map/src/lib/FSEventsWatcher.ts | 2 +- packages/jest-haste-map/src/lib/WatchmanWatcher.js | 2 +- packages/jest-haste-map/src/types.ts | 2 +- packages/jest-message-util/package.json | 2 ++ packages/jest-message-util/src/__tests__/messages.test.ts | 4 ++-- packages/jest-message-util/src/index.ts | 2 +- packages/jest-reporters/package.json | 2 ++ .../jest-reporters/src/__tests__/coverage_worker.test.js | 4 ++-- packages/jest-reporters/src/coverage_reporter.ts | 2 +- packages/jest-reporters/src/coverage_worker.ts | 2 +- packages/jest-reporters/src/generateEmptyCoverage.ts | 2 +- packages/jest-resolve/package.json | 2 ++ packages/jest-resolve/src/__tests__/resolve.test.ts | 2 +- packages/jest-resolve/src/defaultResolver.ts | 2 +- packages/jest-runtime/src/cli/index.ts | 4 ---- packages/jest-serializer/package.json | 4 ++++ packages/jest-serializer/src/__tests__/index.test.ts | 4 +--- packages/jest-serializer/src/index.ts | 2 +- packages/jest-snapshot/package.json | 2 ++ packages/jest-snapshot/src/State.ts | 2 +- .../jest-snapshot/src/__tests__/inline_snapshots.test.ts | 6 +++--- packages/jest-snapshot/src/__tests__/utils.test.ts | 6 +++--- packages/jest-snapshot/src/index.ts | 2 +- packages/jest-snapshot/src/inline_snapshots.ts | 2 +- packages/jest-snapshot/src/utils.ts | 2 +- packages/jest-source-map/src/__tests__/getCallsite.test.ts | 6 +++--- packages/jest-test-sequencer/package.json | 4 ++++ .../src/__tests__/test_sequencer.test.js | 5 ++--- packages/jest-test-sequencer/src/index.ts | 2 +- .../src/__tests__/script_transformer.test.js | 2 +- packages/jest-util/package.json | 1 + packages/jest-util/src/installCommonGlobals.ts | 2 +- scripts/browserBuild.js | 1 + yarn.lock | 2 +- 76 files changed, 109 insertions(+), 86 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index d04c2f900797..3594b3b18ec6 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -142,6 +142,13 @@ module.exports = { // https://github.com/benmosher/eslint-plugin-import/issues/645 'import/order': 0, 'no-console': 0, + 'no-restricted-imports': [ + 2, + { + message: 'Please use graceful-fs instead.', + name: 'fs', + }, + ], 'no-unused-vars': 2, 'prettier/prettier': 2, 'sort-imports': [2, {ignoreDeclarationSort: true}], diff --git a/CHANGELOG.md b/CHANGELOG.md index 07c630555d7e..e02c33d9c2ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ ### Fixes +- `[*]` Use `graceful-fs` directly in every package instead of relying on `fs` being monkey patched ([#9443](https://github.com/facebook/jest/pull/9443)) - `[expect]` Restore support for passing functions to `toHaveLength` matcher ([#9796](https://github.com/facebook/jest/pull/9796)) - `[jest-changed-files]` `--only-changed` should include staged files ([#9799](https://github.com/facebook/jest/pull/9799)) - `[jest-circus]` Throw on nested test definitions ([#9828](https://github.com/facebook/jest/pull/9828)) @@ -272,8 +273,6 @@ - `[jest-types]` Mark `InitialOptions` as `Partial` ([#8848](https://github.com/facebook/jest/pull/8848)) - `[jest-config]` Refactor `normalize` to be more type safe ([#8848](https://github.com/facebook/jest/pull/8848)) -### Performance - ## 24.9.0 ### Features diff --git a/e2e/Utils.ts b/e2e/Utils.ts index f377c53e5916..e4a93c0c07c0 100644 --- a/e2e/Utils.ts +++ b/e2e/Utils.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import type {Config} from '@jest/types'; // eslint-disable-next-line import/named diff --git a/e2e/__tests__/clearCache.test.ts b/e2e/__tests__/clearCache.test.ts index 859800c939d4..3f7897c0b9a4 100644 --- a/e2e/__tests__/clearCache.test.ts +++ b/e2e/__tests__/clearCache.test.ts @@ -5,9 +5,9 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import {tmpdir} from 'os'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import runJest from '../runJest'; const CACHE = path.resolve(tmpdir(), 'clear-cache-directory'); diff --git a/e2e/__tests__/coverageHandlebars.test.ts b/e2e/__tests__/coverageHandlebars.test.ts index 28337a9e5b9f..3e16071fceb5 100644 --- a/e2e/__tests__/coverageHandlebars.test.ts +++ b/e2e/__tests__/coverageHandlebars.test.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import {readFileSync} from 'fs'; import * as path from 'path'; +import {readFileSync} from 'graceful-fs'; import wrap from 'jest-snapshot-serializer-raw'; import {cleanup, run} from '../Utils'; import runJest from '../runJest'; diff --git a/e2e/__tests__/coverageRemapping.test.ts b/e2e/__tests__/coverageRemapping.test.ts index 07172e613b77..9883f2053778 100644 --- a/e2e/__tests__/coverageRemapping.test.ts +++ b/e2e/__tests__/coverageRemapping.test.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import {readFileSync} from 'fs'; import * as path from 'path'; +import {readFileSync} from 'graceful-fs'; import {cleanup, run} from '../Utils'; import runJest from '../runJest'; diff --git a/e2e/__tests__/coverageReport.test.ts b/e2e/__tests__/coverageReport.test.ts index 13765ec0dade..d59e16cb82f2 100644 --- a/e2e/__tests__/coverageReport.test.ts +++ b/e2e/__tests__/coverageReport.test.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import {wrap} from 'jest-snapshot-serializer-raw'; import {extractSummary, run} from '../Utils'; import runJest from '../runJest'; diff --git a/e2e/__tests__/coverageTransformInstrumented.test.ts b/e2e/__tests__/coverageTransformInstrumented.test.ts index c16b07fab5ce..7e0ff66eafb2 100644 --- a/e2e/__tests__/coverageTransformInstrumented.test.ts +++ b/e2e/__tests__/coverageTransformInstrumented.test.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import {readFileSync} from 'fs'; import * as path from 'path'; +import {readFileSync} from 'graceful-fs'; import {cleanup, run} from '../Utils'; import runJest from '../runJest'; diff --git a/e2e/__tests__/globalSetup.test.ts b/e2e/__tests__/globalSetup.test.ts index 8e9a582f2ea7..106c89a17d23 100644 --- a/e2e/__tests__/globalSetup.test.ts +++ b/e2e/__tests__/globalSetup.test.ts @@ -5,9 +5,9 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import {tmpdir} from 'os'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import runJest, {json as runWithJson} from '../runJest'; import {cleanup, run} from '../Utils'; diff --git a/e2e/__tests__/globalTeardown.test.ts b/e2e/__tests__/globalTeardown.test.ts index b05d94cfabcd..7964048bbc70 100644 --- a/e2e/__tests__/globalTeardown.test.ts +++ b/e2e/__tests__/globalTeardown.test.ts @@ -5,9 +5,9 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import {tmpdir} from 'os'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import {createDirectory} from 'jest-util'; import runJest, {json as runWithJson} from '../runJest'; import {cleanup, run} from '../Utils'; diff --git a/e2e/__tests__/jsonReporter.test.ts b/e2e/__tests__/jsonReporter.test.ts index 92fb4d6cd97c..c695c0ef6882 100644 --- a/e2e/__tests__/jsonReporter.test.ts +++ b/e2e/__tests__/jsonReporter.test.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import type {FormattedTestResults} from '@jest/test-result'; import runJest from '../runJest'; diff --git a/e2e/__tests__/setupFilesAfterEnvConfig.test.ts b/e2e/__tests__/setupFilesAfterEnvConfig.test.ts index a5955368e2a1..a9c0b791b82b 100644 --- a/e2e/__tests__/setupFilesAfterEnvConfig.test.ts +++ b/e2e/__tests__/setupFilesAfterEnvConfig.test.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import {json as runWithJson} from '../runJest'; import {writeFiles} from '../Utils'; diff --git a/e2e/__tests__/snapshot.test.ts b/e2e/__tests__/snapshot.test.ts index 7cda913f7c44..5396a73b7f95 100644 --- a/e2e/__tests__/snapshot.test.ts +++ b/e2e/__tests__/snapshot.test.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import {wrap} from 'jest-snapshot-serializer-raw'; import {extractSummary} from '../Utils'; import runJest, {json as runWithJson} from '../runJest'; diff --git a/e2e/__tests__/snapshotResolver.test.ts b/e2e/__tests__/snapshotResolver.test.ts index f5c3a08a4b25..f94e0690ed39 100644 --- a/e2e/__tests__/snapshotResolver.test.ts +++ b/e2e/__tests__/snapshotResolver.test.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import runJest from '../runJest'; const snapshotDir = path.resolve( diff --git a/e2e/__tests__/testEnvironmentAsync.test.ts b/e2e/__tests__/testEnvironmentAsync.test.ts index fd0d7804ed46..114af7aae14f 100644 --- a/e2e/__tests__/testEnvironmentAsync.test.ts +++ b/e2e/__tests__/testEnvironmentAsync.test.ts @@ -5,9 +5,9 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; import {tmpdir} from 'os'; +import * as fs from 'graceful-fs'; import runJest from '../runJest'; import {cleanup} from '../Utils'; diff --git a/e2e/__tests__/testRetries.test.ts b/e2e/__tests__/testRetries.test.ts index cedf680ea0a2..c7a3587a448d 100644 --- a/e2e/__tests__/testRetries.test.ts +++ b/e2e/__tests__/testRetries.test.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import {skipSuiteOnJasmine} from '@jest/test-utils'; import runJest from '../runJest'; diff --git a/e2e/__tests__/toMatchInlineSnapshot.test.ts b/e2e/__tests__/toMatchInlineSnapshot.test.ts index f17ccae6f51a..228662fe6e57 100644 --- a/e2e/__tests__/toMatchInlineSnapshot.test.ts +++ b/e2e/__tests__/toMatchInlineSnapshot.test.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import {wrap} from 'jest-snapshot-serializer-raw'; import {cleanup, makeTemplate, writeFiles} from '../Utils'; import runJest from '../runJest'; @@ -256,6 +256,7 @@ test('handles mocking native modules prettier relies on', () => { const test = ` jest.mock('path', () => ({})); jest.mock('fs', () => ({})); + jest.mock('graceful-fs', () => ({})); test('inline snapshots', () => { expect({}).toMatchInlineSnapshot(); }); diff --git a/e2e/__tests__/toMatchSnapshotWithStringSerializer.test.ts b/e2e/__tests__/toMatchSnapshotWithStringSerializer.test.ts index 1296b4961a69..eafcccb6527a 100644 --- a/e2e/__tests__/toMatchSnapshotWithStringSerializer.test.ts +++ b/e2e/__tests__/toMatchSnapshotWithStringSerializer.test.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import {cleanup, makeTemplate, writeFiles} from '../Utils'; import runJest from '../runJest'; diff --git a/e2e/__tests__/toThrowErrorMatchingInlineSnapshot.test.ts b/e2e/__tests__/toThrowErrorMatchingInlineSnapshot.test.ts index 0dfb598115fd..da2f419b46c6 100644 --- a/e2e/__tests__/toThrowErrorMatchingInlineSnapshot.test.ts +++ b/e2e/__tests__/toThrowErrorMatchingInlineSnapshot.test.ts @@ -6,7 +6,7 @@ */ import * as path from 'path'; -import * as fs from 'fs'; +import * as fs from 'graceful-fs'; import {wrap} from 'jest-snapshot-serializer-raw'; import {cleanup, makeTemplate, writeFiles} from '../Utils'; import runJest from '../runJest'; diff --git a/e2e/__tests__/toThrowErrorMatchingSnapshot.test.ts b/e2e/__tests__/toThrowErrorMatchingSnapshot.test.ts index ed579226a02f..de3a3010ccf7 100644 --- a/e2e/__tests__/toThrowErrorMatchingSnapshot.test.ts +++ b/e2e/__tests__/toThrowErrorMatchingSnapshot.test.ts @@ -6,7 +6,7 @@ */ import * as path from 'path'; -import * as fs from 'fs'; +import * as fs from 'graceful-fs'; import {wrap} from 'jest-snapshot-serializer-raw'; import {cleanup, makeTemplate, writeFiles} from '../Utils'; import runJest from '../runJest'; diff --git a/e2e/native-esm/__tests__/native-esm.test.js b/e2e/native-esm/__tests__/native-esm.test.js index 0603e5d67e1d..737d422d9c1c 100644 --- a/e2e/native-esm/__tests__/native-esm.test.js +++ b/e2e/native-esm/__tests__/native-esm.test.js @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// the point here is that it's the node core module +// eslint-disable-next-line no-restricted-imports import {readFileSync} from 'fs'; import {createRequire} from 'module'; import {dirname, resolve} from 'path'; diff --git a/e2e/runJest.ts b/e2e/runJest.ts index 98d1a6db4128..28eda5785672 100644 --- a/e2e/runJest.ts +++ b/e2e/runJest.ts @@ -7,8 +7,8 @@ */ import * as path from 'path'; -import * as fs from 'fs'; import {Writable} from 'stream'; +import * as fs from 'graceful-fs'; import execa = require('execa'); import type {Config} from '@jest/types'; import type {FormattedTestResults} from '@jest/test-result'; diff --git a/packages/babel-jest/package.json b/packages/babel-jest/package.json index a6eca647bef5..8bc8360c884e 100644 --- a/packages/babel-jest/package.json +++ b/packages/babel-jest/package.json @@ -24,10 +24,12 @@ "babel-plugin-istanbul": "^6.0.0", "babel-preset-jest": "^25.4.0", "chalk": "^3.0.0", + "graceful-fs": "^4.2.3", "slash": "^3.0.0" }, "devDependencies": { - "@babel/core": "^7.1.0" + "@babel/core": "^7.1.0", + "@types/graceful-fs": "^4.1.3" }, "peerDependencies": { "@babel/core": "^7.0.0" diff --git a/packages/babel-jest/src/index.ts b/packages/babel-jest/src/index.ts index 12d2ee07a3f6..50259e0ec2cb 100644 --- a/packages/babel-jest/src/index.ts +++ b/packages/babel-jest/src/index.ts @@ -6,8 +6,8 @@ */ import {createHash} from 'crypto'; -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import type { TransformOptions as JestTransformOptions, Transformer, diff --git a/packages/jest-circus/package.json b/packages/jest-circus/package.json index da9d3547d944..f29dc29cbb6f 100644 --- a/packages/jest-circus/package.json +++ b/packages/jest-circus/package.json @@ -41,8 +41,10 @@ "@jest/test-utils": "^25.3.0", "@types/babel__traverse": "^7.0.4", "@types/co": "^4.6.0", + "@types/graceful-fs": "^4.1.3", "@types/stack-utils": "^1.0.1", - "execa": "^3.2.0" + "execa": "^3.2.0", + "graceful-fs": "^4.2.3" }, "engines": { "node": ">= 8.3" diff --git a/packages/jest-circus/src/__mocks__/testUtils.ts b/packages/jest-circus/src/__mocks__/testUtils.ts index 4a26fc4a2907..eb2c1d007466 100644 --- a/packages/jest-circus/src/__mocks__/testUtils.ts +++ b/packages/jest-circus/src/__mocks__/testUtils.ts @@ -5,10 +5,10 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import {tmpdir} from 'os'; import * as path from 'path'; import {createHash} from 'crypto'; +import * as fs from 'graceful-fs'; // eslint-disable-next-line import/named import {ExecaSyncReturnValue, sync as spawnSync} from 'execa'; import {skipSuiteOnWindows} from '@jest/test-utils'; diff --git a/packages/jest-cli/package.json b/packages/jest-cli/package.json index f556af3d0144..cd9886a77888 100644 --- a/packages/jest-cli/package.json +++ b/packages/jest-cli/package.json @@ -17,6 +17,7 @@ "@jest/types": "^25.4.0", "chalk": "^3.0.0", "exit": "^0.1.2", + "graceful-fs": "^4.2.3", "import-local": "^3.0.2", "is-ci": "^2.0.0", "jest-config": "^25.4.0", @@ -30,6 +31,7 @@ "@jest/test-utils": "^25.3.0", "@types/exit": "^0.1.30", "@types/is-ci": "^2.0.0", + "@types/graceful-fs": "^4.1.3", "@types/prompts": "^2.0.1", "@types/yargs": "^15.0.0" }, diff --git a/packages/jest-cli/src/init/__tests__/init.test.js b/packages/jest-cli/src/init/__tests__/init.test.js index 874a6d958c75..579ab04f24fc 100644 --- a/packages/jest-cli/src/init/__tests__/init.test.js +++ b/packages/jest-cli/src/init/__tests__/init.test.js @@ -6,8 +6,8 @@ */ /* eslint-disable no-eval */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import prompts from 'prompts'; import {constants} from 'jest-config'; import init from '../'; @@ -19,7 +19,7 @@ jest.mock('../../../../jest-config/build/getCacheDirectory', () => () => '/tmp/jest', ); jest.mock('path', () => ({...jest.requireActual('path'), sep: '/'})); -jest.mock('fs', () => ({ +jest.mock('graceful-fs', () => ({ ...jest.requireActual('fs'), writeFileSync: jest.fn(), })); diff --git a/packages/jest-cli/src/init/index.ts b/packages/jest-cli/src/init/index.ts index 5f732534af27..b2503fc901f3 100644 --- a/packages/jest-cli/src/init/index.ts +++ b/packages/jest-cli/src/init/index.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import chalk = require('chalk'); import prompts = require('prompts'); import {sync as realpath} from 'realpath-native'; diff --git a/packages/jest-config/package.json b/packages/jest-config/package.json index 7cf920caf17f..400864e88992 100644 --- a/packages/jest-config/package.json +++ b/packages/jest-config/package.json @@ -24,6 +24,7 @@ "chalk": "^3.0.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", + "graceful-fs": "^4.2.3", "jest-environment-jsdom": "^25.4.0", "jest-environment-node": "^25.4.0", "jest-get-type": "^25.2.6", @@ -39,6 +40,7 @@ "devDependencies": { "@types/babel__core": "^7.0.4", "@types/glob": "^7.1.1", + "@types/graceful-fs": "^4.1.3", "@types/micromatch": "^4.0.0" }, "engines": { diff --git a/packages/jest-config/src/__tests__/normalize.test.js b/packages/jest-config/src/__tests__/normalize.test.js index ee4a6658f112..4022b2baec66 100644 --- a/packages/jest-config/src/__tests__/normalize.test.js +++ b/packages/jest-config/src/__tests__/normalize.test.js @@ -19,7 +19,7 @@ const DEFAULT_CSS_PATTERN = '^.+\\.(css)$'; jest .mock('jest-resolve') .mock('path', () => jest.requireActual('path').posix) - .mock('fs', () => { + .mock('graceful-fs', () => { const realFs = jest.requireActual('fs'); return { diff --git a/packages/jest-config/src/index.ts b/packages/jest-config/src/index.ts index 85b6e34546d8..0331c2d23379 100644 --- a/packages/jest-config/src/index.ts +++ b/packages/jest-config/src/index.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import type {Config} from '@jest/types'; import chalk = require('chalk'); import {sync as realpath} from 'realpath-native'; diff --git a/packages/jest-config/src/normalize.ts b/packages/jest-config/src/normalize.ts index fb56b9864e26..4cff07d83bc8 100644 --- a/packages/jest-config/src/normalize.ts +++ b/packages/jest-config/src/normalize.ts @@ -6,8 +6,8 @@ */ import {createHash} from 'crypto'; -import {statSync} from 'fs'; import * as path from 'path'; +import {statSync} from 'graceful-fs'; import {sync as glob} from 'glob'; import type {Config} from '@jest/types'; import {ValidationError, validate} from 'jest-validate'; diff --git a/packages/jest-config/src/readConfigFileAndSetRootDir.ts b/packages/jest-config/src/readConfigFileAndSetRootDir.ts index 867c553b3019..c1d0242efcbc 100644 --- a/packages/jest-config/src/readConfigFileAndSetRootDir.ts +++ b/packages/jest-config/src/readConfigFileAndSetRootDir.ts @@ -6,7 +6,7 @@ */ import * as path from 'path'; -import * as fs from 'fs'; +import * as fs from 'graceful-fs'; import type {Config} from '@jest/types'; // @ts-ignore: vendored import jsonlint from './vendor/jsonlint'; diff --git a/packages/jest-config/src/resolveConfigPath.ts b/packages/jest-config/src/resolveConfigPath.ts index 52eed9a07e5c..dc8655513858 100644 --- a/packages/jest-config/src/resolveConfigPath.ts +++ b/packages/jest-config/src/resolveConfigPath.ts @@ -6,7 +6,7 @@ */ import * as path from 'path'; -import * as fs from 'fs'; +import * as fs from 'graceful-fs'; import type {Config} from '@jest/types'; import { JEST_CONFIG_BASE_NAME, diff --git a/packages/jest-core/src/__tests__/SearchSource.test.ts b/packages/jest-core/src/__tests__/SearchSource.test.ts index 0a6815062c85..5a92a31d8bc8 100644 --- a/packages/jest-core/src/__tests__/SearchSource.test.ts +++ b/packages/jest-core/src/__tests__/SearchSource.test.ts @@ -15,7 +15,7 @@ import SearchSource, {SearchResult} from '../SearchSource'; jest.setTimeout(15000); -jest.mock('fs', () => { +jest.mock('graceful-fs', () => { const realFs = jest.requireActual('fs'); return { diff --git a/packages/jest-core/src/__tests__/watch-file-changes.test.ts b/packages/jest-core/src/__tests__/watch-file-changes.test.ts index be0f3c97760c..17ed2fc5c370 100644 --- a/packages/jest-core/src/__tests__/watch-file-changes.test.ts +++ b/packages/jest-core/src/__tests__/watch-file-changes.test.ts @@ -7,8 +7,8 @@ */ import * as path from 'path'; -import * as fs from 'fs'; import {tmpdir} from 'os'; +import * as fs from 'graceful-fs'; import {JestHook} from 'jest-watcher'; import Runtime = require('jest-runtime'); import {normalize} from 'jest-config'; diff --git a/packages/jest-core/src/cli/index.ts b/packages/jest-core/src/cli/index.ts index 9faffd0dcc15..dd8b469e7624 100644 --- a/packages/jest-core/src/cli/index.ts +++ b/packages/jest-core/src/cli/index.ts @@ -38,10 +38,6 @@ export async function runCLI( results: AggregatedResult; globalConfig: Config.GlobalConfig; }> { - const realFs = require('fs'); - const fs = require('graceful-fs'); - fs.gracefulify(realFs); - let results: AggregatedResult | undefined; // If we output a JSON object, we can't write anything to stdout, since diff --git a/packages/jest-haste-map/src/__tests__/index.test.js b/packages/jest-haste-map/src/__tests__/index.test.js index fee7fce17ff9..ebd189b385ac 100644 --- a/packages/jest-haste-map/src/__tests__/index.test.js +++ b/packages/jest-haste-map/src/__tests__/index.test.js @@ -105,7 +105,6 @@ jest.mock('graceful-fs', () => ({ mockFs[path] = data; }), })); -jest.mock('fs', () => require('graceful-fs')); const cacheFilePath = '/cache-file'; const object = data => Object.assign(Object.create(null), data); diff --git a/packages/jest-haste-map/src/crawlers/__tests__/node.test.js b/packages/jest-haste-map/src/crawlers/__tests__/node.test.js index 863ecb8c4ad2..c972f0da6dd1 100644 --- a/packages/jest-haste-map/src/crawlers/__tests__/node.test.js +++ b/packages/jest-haste-map/src/crawlers/__tests__/node.test.js @@ -33,7 +33,7 @@ jest.mock('child_process', () => ({ let mockHasReaddirWithFileTypesSupport = false; -jest.mock('fs', () => { +jest.mock('graceful-fs', () => { let mtime = 32; const size = 42; const stat = (path, callback) => { @@ -384,7 +384,7 @@ describe('node crawler', () => { describe('readdir withFileTypes support', () => { it('calls lstat for directories and symlinks if readdir withFileTypes is not supported', () => { nodeCrawl = require('../node'); - const fs = require('fs'); + const fs = require('graceful-fs'); const files = new Map(); return nodeCrawl({ @@ -416,7 +416,7 @@ describe('node crawler', () => { it('avoids calling lstat for directories and symlinks if readdir withFileTypes is supported', () => { mockHasReaddirWithFileTypesSupport = true; nodeCrawl = require('../node'); - const fs = require('fs'); + const fs = require('graceful-fs'); const files = new Map(); return nodeCrawl({ diff --git a/packages/jest-haste-map/src/crawlers/node.ts b/packages/jest-haste-map/src/crawlers/node.ts index c8254bd36361..0266816d91fb 100644 --- a/packages/jest-haste-map/src/crawlers/node.ts +++ b/packages/jest-haste-map/src/crawlers/node.ts @@ -5,9 +5,9 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; import {spawn} from 'child_process'; +import * as fs from 'graceful-fs'; import which = require('which'); import H from '../constants'; import * as fastPath from '../lib/fast_path'; diff --git a/packages/jest-haste-map/src/index.ts b/packages/jest-haste-map/src/index.ts index 5a0fbe7b96f8..866a06a1b140 100644 --- a/packages/jest-haste-map/src/index.ts +++ b/packages/jest-haste-map/src/index.ts @@ -8,9 +8,9 @@ import {execSync} from 'child_process'; import {createHash} from 'crypto'; import {EventEmitter} from 'events'; -import type {Stats} from 'fs'; import {tmpdir} from 'os'; import * as path from 'path'; +import type {Stats} from 'graceful-fs'; import {NodeWatcher, Watcher as SaneWatcher} from 'sane'; import type {Config} from '@jest/types'; import serializer from 'jest-serializer'; diff --git a/packages/jest-haste-map/src/lib/FSEventsWatcher.ts b/packages/jest-haste-map/src/lib/FSEventsWatcher.ts index f41305b1cd31..5cac36f02133 100644 --- a/packages/jest-haste-map/src/lib/FSEventsWatcher.ts +++ b/packages/jest-haste-map/src/lib/FSEventsWatcher.ts @@ -6,9 +6,9 @@ * */ -import * as fs from 'fs'; import * as path from 'path'; import {EventEmitter} from 'events'; +import * as fs from 'graceful-fs'; import anymatch, {Matcher} from 'anymatch'; import micromatch = require('micromatch'); // @ts-ignore no types diff --git a/packages/jest-haste-map/src/lib/WatchmanWatcher.js b/packages/jest-haste-map/src/lib/WatchmanWatcher.js index adce679cdf08..5f10a750684f 100644 --- a/packages/jest-haste-map/src/lib/WatchmanWatcher.js +++ b/packages/jest-haste-map/src/lib/WatchmanWatcher.js @@ -5,10 +5,10 @@ * LICENSE file in the root directory of this source tree. */ -import fs from 'fs'; import path from 'path'; import assert from 'assert'; import {EventEmitter} from 'events'; +import * as fs from 'graceful-fs'; import watchman from 'fb-watchman'; import common from 'sane/src/common'; import RecrawlWarning from 'sane/src/utils/recrawl-warning-dedupe'; diff --git a/packages/jest-haste-map/src/types.ts b/packages/jest-haste-map/src/types.ts index 953b2ecc9858..6d09b1fdc182 100644 --- a/packages/jest-haste-map/src/types.ts +++ b/packages/jest-haste-map/src/types.ts @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import type {Stats} from 'fs'; +import type {Stats} from 'graceful-fs'; import type {Config} from '@jest/types'; import type ModuleMap from './ModuleMap'; import type HasteFS from './HasteFS'; diff --git a/packages/jest-message-util/package.json b/packages/jest-message-util/package.json index 4f579e9d82da..c0659aac3627 100644 --- a/packages/jest-message-util/package.json +++ b/packages/jest-message-util/package.json @@ -24,12 +24,14 @@ "@jest/types": "^25.4.0", "@types/stack-utils": "^1.0.1", "chalk": "^3.0.0", + "graceful-fs": "^4.2.3", "micromatch": "^4.0.2", "slash": "^3.0.0", "stack-utils": "^1.0.1" }, "devDependencies": { "@types/babel__code-frame": "^7.0.0", + "@types/graceful-fs": "^4.1.3", "@types/micromatch": "^4.0.0" }, "publishConfig": { diff --git a/packages/jest-message-util/src/__tests__/messages.test.ts b/packages/jest-message-util/src/__tests__/messages.test.ts index e4b3d3bf8dad..55c24797cb58 100644 --- a/packages/jest-message-util/src/__tests__/messages.test.ts +++ b/packages/jest-message-util/src/__tests__/messages.test.ts @@ -6,14 +6,14 @@ * */ -import {readFileSync} from 'fs'; +import {readFileSync} from 'graceful-fs'; import slash = require('slash'); import tempy = require('tempy'); import {formatExecError, formatResultsErrors, formatStackTrace} from '..'; const rootDir = tempy.directory(); -jest.mock('fs', () => ({ +jest.mock('graceful-fs', () => ({ ...jest.requireActual('fs'), readFileSync: jest.fn(), })); diff --git a/packages/jest-message-util/src/index.ts b/packages/jest-message-util/src/index.ts index e205c823d648..4b49f66dab5d 100644 --- a/packages/jest-message-util/src/index.ts +++ b/packages/jest-message-util/src/index.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import type {Config, TestResult} from '@jest/types'; import chalk = require('chalk'); import micromatch = require('micromatch'); diff --git a/packages/jest-reporters/package.json b/packages/jest-reporters/package.json index d9ca29b2bbb8..7194df92d2f1 100644 --- a/packages/jest-reporters/package.json +++ b/packages/jest-reporters/package.json @@ -20,6 +20,7 @@ "chalk": "^3.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", + "graceful-fs": "^4.2.3", "glob": "^7.1.2", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^4.0.0", @@ -39,6 +40,7 @@ "devDependencies": { "@types/exit": "^0.1.30", "@types/glob": "^7.1.1", + "@types/graceful-fs": "^4.1.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-lib-instrument": "^1.7.2", "@types/istanbul-lib-report": "^3.0.0", diff --git a/packages/jest-reporters/src/__tests__/coverage_worker.test.js b/packages/jest-reporters/src/__tests__/coverage_worker.test.js index 86cfeecb1ab3..913cf4753c9a 100644 --- a/packages/jest-reporters/src/__tests__/coverage_worker.test.js +++ b/packages/jest-reporters/src/__tests__/coverage_worker.test.js @@ -7,7 +7,7 @@ 'use strict'; -jest.mock('fs').mock('../generateEmptyCoverage'); +jest.mock('graceful-fs').mock('../generateEmptyCoverage'); const globalConfig = {collectCoverage: true}; const config = {}; @@ -20,7 +20,7 @@ let worker; beforeEach(() => { jest.resetModules(); - fs = require('fs'); + fs = require('graceful-fs'); generateEmptyCoverage = require('../generateEmptyCoverage').default; worker = require('../coverage_worker').worker; }); diff --git a/packages/jest-reporters/src/coverage_reporter.ts b/packages/jest-reporters/src/coverage_reporter.ts index 1e87c21bdbd8..5966bdde9600 100644 --- a/packages/jest-reporters/src/coverage_reporter.ts +++ b/packages/jest-reporters/src/coverage_reporter.ts @@ -6,7 +6,7 @@ */ import * as path from 'path'; -import * as fs from 'fs'; +import * as fs from 'graceful-fs'; import type {Config} from '@jest/types'; import type { AggregatedResult, diff --git a/packages/jest-reporters/src/coverage_worker.ts b/packages/jest-reporters/src/coverage_worker.ts index d1894b97574c..f40c1aadc3d4 100644 --- a/packages/jest-reporters/src/coverage_worker.ts +++ b/packages/jest-reporters/src/coverage_worker.ts @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; +import * as fs from 'graceful-fs'; import type {Config} from '@jest/types'; import exit = require('exit'); import type {CoverageReporterSerializedOptions} from './types'; diff --git a/packages/jest-reporters/src/generateEmptyCoverage.ts b/packages/jest-reporters/src/generateEmptyCoverage.ts index 38f184d61558..e4f35e7c02cf 100644 --- a/packages/jest-reporters/src/generateEmptyCoverage.ts +++ b/packages/jest-reporters/src/generateEmptyCoverage.ts @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; +import * as fs from 'graceful-fs'; import type {Config} from '@jest/types'; import {readInitialCoverage} from 'istanbul-lib-instrument'; import {FileCoverage, createFileCoverage} from 'istanbul-lib-coverage'; diff --git a/packages/jest-resolve/package.json b/packages/jest-resolve/package.json index 7dc336af75c3..1114fb3284d6 100644 --- a/packages/jest-resolve/package.json +++ b/packages/jest-resolve/package.json @@ -20,6 +20,7 @@ "@jest/types": "^25.4.0", "browser-resolve": "^1.11.3", "chalk": "^3.0.0", + "graceful-fs": "^4.2.3", "jest-pnp-resolver": "^1.2.1", "read-pkg-up": "^7.0.1", "realpath-native": "^2.0.0", @@ -28,6 +29,7 @@ }, "devDependencies": { "@types/browser-resolve": "^1.11.0", + "@types/graceful-fs": "^4.1.3", "@types/resolve": "^1.14.0", "jest-haste-map": "^25.4.0" }, diff --git a/packages/jest-resolve/src/__tests__/resolve.test.ts b/packages/jest-resolve/src/__tests__/resolve.test.ts index 9e5499c5832f..a1f7f49a865b 100644 --- a/packages/jest-resolve/src/__tests__/resolve.test.ts +++ b/packages/jest-resolve/src/__tests__/resolve.test.ts @@ -6,8 +6,8 @@ * */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import {ModuleMap} from 'jest-haste-map'; import Resolver = require('../'); // @ts-ignore: js file diff --git a/packages/jest-resolve/src/defaultResolver.ts b/packages/jest-resolve/src/defaultResolver.ts index 0e20699364ba..e66a74036a3f 100644 --- a/packages/jest-resolve/src/defaultResolver.ts +++ b/packages/jest-resolve/src/defaultResolver.ts @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; +import * as fs from 'graceful-fs'; import {sync as resolveSync} from 'resolve'; import {sync as browserResolve} from 'browser-resolve'; import {sync as realpath} from 'realpath-native'; diff --git a/packages/jest-runtime/src/cli/index.ts b/packages/jest-runtime/src/cli/index.ts index 54857611e5c2..4b4f349b7d58 100644 --- a/packages/jest-runtime/src/cli/index.ts +++ b/packages/jest-runtime/src/cli/index.ts @@ -24,10 +24,6 @@ export async function run( cliArgv?: Config.Argv, cliInfo?: Array, ): Promise { - const realFs = require('fs'); - const fs = require('graceful-fs'); - fs.gracefulify(realFs); - let argv; if (cliArgv) { argv = cliArgv; diff --git a/packages/jest-serializer/package.json b/packages/jest-serializer/package.json index ae4bd8ec7703..530d922ba2f3 100644 --- a/packages/jest-serializer/package.json +++ b/packages/jest-serializer/package.json @@ -7,8 +7,12 @@ "directory": "packages/jest-serializer" }, "devDependencies": { + "@types/graceful-fs": "^4.1.3", "@types/node": "*" }, + "dependencies": { + "graceful-fs": "^4.2.3" + }, "engines": { "node": ">= 8.3" }, diff --git a/packages/jest-serializer/src/__tests__/index.test.ts b/packages/jest-serializer/src/__tests__/index.test.ts index f27a68911932..45a6951315a8 100644 --- a/packages/jest-serializer/src/__tests__/index.test.ts +++ b/packages/jest-serializer/src/__tests__/index.test.ts @@ -5,11 +5,9 @@ * LICENSE file in the root directory of this source tree. */ -'use strict'; - -import * as fs from 'fs'; import {tmpdir} from 'os'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import prettyFormat = require('pretty-format'); import serializer from '..'; diff --git a/packages/jest-serializer/src/index.ts b/packages/jest-serializer/src/index.ts index 4483f5b45f7d..8f6bd7a9913d 100644 --- a/packages/jest-serializer/src/index.ts +++ b/packages/jest-serializer/src/index.ts @@ -7,8 +7,8 @@ // TODO: Remove this /// -import * as fs from 'fs'; import {deserialize as v8Deserialize, serialize as v8Serialize} from 'v8'; +import * as fs from 'graceful-fs'; type Path = string; diff --git a/packages/jest-snapshot/package.json b/packages/jest-snapshot/package.json index 7082f7ee0e96..f258ead48261 100644 --- a/packages/jest-snapshot/package.json +++ b/packages/jest-snapshot/package.json @@ -22,6 +22,7 @@ "@types/prettier": "^1.19.0", "chalk": "^3.0.0", "expect": "^25.4.0", + "graceful-fs": "^4.2.3", "jest-diff": "^25.4.0", "jest-get-type": "^25.2.6", "jest-matcher-utils": "^25.4.0", @@ -34,6 +35,7 @@ }, "devDependencies": { "@babel/traverse": "^7.3.4", + "@types/graceful-fs": "^4.1.3", "@types/natural-compare": "^1.4.0", "@types/semver": "^6.0.1", "ansi-regex": "^5.0.0", diff --git a/packages/jest-snapshot/src/State.ts b/packages/jest-snapshot/src/State.ts index 8e7824bc15c4..8cdfd52b817b 100644 --- a/packages/jest-snapshot/src/State.ts +++ b/packages/jest-snapshot/src/State.ts @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; +import * as fs from 'graceful-fs'; import type {Config} from '@jest/types'; import {getStackTraceLines, getTopFrame} from 'jest-message-util'; diff --git a/packages/jest-snapshot/src/__tests__/inline_snapshots.test.ts b/packages/jest-snapshot/src/__tests__/inline_snapshots.test.ts index ceb3ac422d8b..cf7cba34c07e 100644 --- a/packages/jest-snapshot/src/__tests__/inline_snapshots.test.ts +++ b/packages/jest-snapshot/src/__tests__/inline_snapshots.test.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -jest.mock('fs', () => ({ - ...jest.genMockFromModule('fs'), +jest.mock('graceful-fs', () => ({ + ...jest.genMockFromModule('fs'), existsSync: jest.fn().mockReturnValue(true), readdirSync: jest.fn().mockReturnValue([]), statSync: jest.fn(filePath => ({ @@ -15,8 +15,8 @@ jest.mock('fs', () => ({ })); jest.mock('prettier'); -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import prettier from 'prettier'; import babelTraverse from '@babel/traverse'; import {Frame} from 'jest-message-util'; diff --git a/packages/jest-snapshot/src/__tests__/utils.test.ts b/packages/jest-snapshot/src/__tests__/utils.test.ts index df0845440f49..6f00aed6c0c4 100644 --- a/packages/jest-snapshot/src/__tests__/utils.test.ts +++ b/packages/jest-snapshot/src/__tests__/utils.test.ts @@ -5,13 +5,13 @@ * LICENSE file in the root directory of this source tree. */ -jest.mock('fs', () => ({ - ...jest.genMockFromModule('fs'), +jest.mock('graceful-fs', () => ({ + ...jest.genMockFromModule('fs'), existsSync: jest.fn().mockReturnValue(true), })); -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import assert = require('assert'); import chalk = require('chalk'); diff --git a/packages/jest-snapshot/src/index.ts b/packages/jest-snapshot/src/index.ts index a1edaaa8da49..2fed614d7d53 100644 --- a/packages/jest-snapshot/src/index.ts +++ b/packages/jest-snapshot/src/index.ts @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; +import * as fs from 'graceful-fs'; import type {Config} from '@jest/types'; import type {FS as HasteFS} from 'jest-haste-map'; diff --git a/packages/jest-snapshot/src/inline_snapshots.ts b/packages/jest-snapshot/src/inline_snapshots.ts index 83691b63ed08..9ed55f8ae0c0 100644 --- a/packages/jest-snapshot/src/inline_snapshots.ts +++ b/packages/jest-snapshot/src/inline_snapshots.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import semver = require('semver'); import { CallExpression, diff --git a/packages/jest-snapshot/src/utils.ts b/packages/jest-snapshot/src/utils.ts index 0b75df741b8e..d1ef478e7fbf 100644 --- a/packages/jest-snapshot/src/utils.ts +++ b/packages/jest-snapshot/src/utils.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import makeDir = require('make-dir'); import naturalCompare = require('natural-compare'); import chalk = require('chalk'); diff --git a/packages/jest-source-map/src/__tests__/getCallsite.test.ts b/packages/jest-source-map/src/__tests__/getCallsite.test.ts index 0de9b483bc64..c8bdf09eb76c 100644 --- a/packages/jest-source-map/src/__tests__/getCallsite.test.ts +++ b/packages/jest-source-map/src/__tests__/getCallsite.test.ts @@ -5,13 +5,13 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; +import * as fs from 'graceful-fs'; import SourceMap from 'source-map'; import getCallsite from '../getCallsite'; // Node 10.5.x compatibility -jest.mock('fs', () => ({ - ...jest.genMockFromModule('fs'), +jest.mock('graceful-fs', () => ({ + ...jest.genMockFromModule('fs'), ReadStream: jest.requireActual('fs').ReadStream, WriteStream: jest.requireActual('fs').WriteStream, })); diff --git a/packages/jest-test-sequencer/package.json b/packages/jest-test-sequencer/package.json index 167fe0758485..e0939a466d28 100644 --- a/packages/jest-test-sequencer/package.json +++ b/packages/jest-test-sequencer/package.json @@ -18,10 +18,14 @@ }, "dependencies": { "@jest/test-result": "^25.4.0", + "graceful-fs": "^4.2.3", "jest-haste-map": "^25.4.0", "jest-runner": "^25.4.0", "jest-runtime": "^25.4.0" }, + "devDependencies": { + "@types/graceful-fs": "^4.1.3" + }, "engines": { "node": ">= 8.3" }, diff --git a/packages/jest-test-sequencer/src/__tests__/test_sequencer.test.js b/packages/jest-test-sequencer/src/__tests__/test_sequencer.test.js index 005338de0063..4239f37bd8da 100644 --- a/packages/jest-test-sequencer/src/__tests__/test_sequencer.test.js +++ b/packages/jest-test-sequencer/src/__tests__/test_sequencer.test.js @@ -4,13 +4,12 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -'use strict'; -import * as fs from 'fs'; import * as path from 'path'; +import * as fs from 'graceful-fs'; import TestSequencer from '../index'; -jest.mock('fs', () => ({ +jest.mock('graceful-fs', () => ({ ...jest.genMockFromModule('fs'), existsSync: jest.fn(() => true), readFileSync: jest.fn(() => '{}'), diff --git a/packages/jest-test-sequencer/src/index.ts b/packages/jest-test-sequencer/src/index.ts index 286188126d30..26b45976311e 100644 --- a/packages/jest-test-sequencer/src/index.ts +++ b/packages/jest-test-sequencer/src/index.ts @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; +import * as fs from 'graceful-fs'; import type {AggregatedResult} from '@jest/test-result'; import {getCacheFilePath} from 'jest-haste-map'; import type {Context} from 'jest-runtime'; diff --git a/packages/jest-transform/src/__tests__/script_transformer.test.js b/packages/jest-transform/src/__tests__/script_transformer.test.js index b6570ee1c404..6479bc62e1ce 100644 --- a/packages/jest-transform/src/__tests__/script_transformer.test.js +++ b/packages/jest-transform/src/__tests__/script_transformer.test.js @@ -10,7 +10,7 @@ import {wrap} from 'jest-snapshot-serializer-raw'; import {makeGlobalConfig, makeProjectConfig} from '../../../../TestUtils'; jest - .mock('fs', () => + .mock('graceful-fs', () => // Node 10.5.x compatibility ({ ...jest.genMockFromModule('fs'), diff --git a/packages/jest-util/package.json b/packages/jest-util/package.json index 0123d0e4d56d..3e7dcafd3c8d 100644 --- a/packages/jest-util/package.json +++ b/packages/jest-util/package.json @@ -19,6 +19,7 @@ "dependencies": { "@jest/types": "^25.4.0", "chalk": "^3.0.0", + "graceful-fs": "^4.2.3", "is-ci": "^2.0.0", "make-dir": "^3.0.0" }, diff --git a/packages/jest-util/src/installCommonGlobals.ts b/packages/jest-util/src/installCommonGlobals.ts index bd8d3bce4077..e711df3ae2c4 100644 --- a/packages/jest-util/src/installCommonGlobals.ts +++ b/packages/jest-util/src/installCommonGlobals.ts @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import * as fs from 'fs'; +import * as fs from 'graceful-fs'; import type {Config} from '@jest/types'; import createProcessObject from './createProcessObject'; import deepCyclicCopy from './deepCyclicCopy'; diff --git a/scripts/browserBuild.js b/scripts/browserBuild.js index 4c3257380c71..6e35147a9dd6 100644 --- a/scripts/browserBuild.js +++ b/scripts/browserBuild.js @@ -64,6 +64,7 @@ function browserBuild(pkgName, entryPath, destination) { __dirname, '../packages/expect/build/fakeChalk.js', ), + 'graceful-fs': 'fs', }, extensions: ['.js', '.json', '.ts'], }, diff --git a/yarn.lock b/yarn.lock index 3f604de1b915..fc53ac02cff5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2332,7 +2332,7 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/graceful-fs@^4.1.2": +"@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3": version "4.1.3" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== From d19bdb525022e5d8a7b4fd77b81c54b3ffd4bc64 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Wed, 22 Jan 2020 15:10:24 +0100 Subject: [PATCH 02/12] log heap usage --- jest | 2 +- jest.config.ci.js | 5 +---- package.json | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/jest b/jest index 46e2bc65dbb8..d0800e81502e 100755 --- a/jest +++ b/jest @@ -9,4 +9,4 @@ LICENSE file in the root directory of this source tree. DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -node "$DIR"/packages/jest-cli/bin/jest "$@" +node "$DIR"/packages/jest-cli/bin/jest "$@" --log-heap-usage diff --git a/jest.config.ci.js b/jest.config.ci.js index 68e16b4300ac..2f245687edce 100644 --- a/jest.config.ci.js +++ b/jest.config.ci.js @@ -15,9 +15,6 @@ module.exports = { 'jest-junit', {outputDirectory: 'reports/junit', outputName: 'js-test-results.xml'}, ], - [ - 'jest-silent-reporter', - {showPaths: true, showWarnings: true, useDots: true}, - ], + 'default', ], }; diff --git a/package.json b/package.json index 8658d7699537..1770bdc3ea67 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "check-copyright-headers": "node ./scripts/checkCopyrightHeaders.js", "clean-all": "yarn clean-e2e && yarn build-clean && rimraf ./packages/*/node_modules && rimraf ./node_modules", "clean-e2e": "node ./scripts/cleanE2e.js", - "jest": "node ./packages/jest-cli/bin/jest.js", + "jest": "node ./packages/jest-cli/bin/jest.js --log-heap-usage", "jest-coverage": "yarn jest --coverage", "lint": "eslint . --cache --ext js,jsx,ts,tsx,md", "lint-es5-build": "eslint --no-eslintrc --no-ignore --env=browser packages/*/build-es5", From 9170198772f1eb3f3319affbfba13b650082ff0a Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 24 Feb 2020 07:51:50 +0100 Subject: [PATCH 03/12] force older graceful --- package.json | 5 ++++- yarn.lock | 8 ++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1770bdc3ea67..afd83745a6b9 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "lint:prettier": "prettier '**/*.{md,yml,yaml}' 'website/static/**/*.{css,js}' --write --ignore-path .gitignore", "lint:prettier:ci": "prettier '**/*.{md,yml,yaml}' 'website/static/**/*.{css,js}' --check --ignore-path .gitignore", "postinstall": "opencollective postinstall && yarn build", - "install-no-ts-build": "node ./scripts/remove-postinstall && yarn --no-progress --frozen-lockfile && node ./scripts/build", + "install-no-ts-build": "node ./scripts/remove-postinstall && yarn --no-progress && node ./scripts/build", "remove-prettier-dep": "node ./scripts/remove-prettier-dep", "publish": "yarn build-clean && yarn build && lerna publish --silent", "test-ci-es5-build-in-browser": "karma start --single-run", @@ -142,5 +142,8 @@ }, "engines": { "node": ">= 8.3" + }, + "resolutions": { + "graceful-fs": "~4.1.15" } } diff --git a/yarn.lock b/yarn.lock index fc53ac02cff5..5501a8ad726a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7479,10 +7479,10 @@ got@^8.3.1: url-parse-lax "^3.0.0" url-to-options "^1.0.1" -graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== +graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@~4.1.15: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== "graceful-readlink@>= 1.0.0": version "1.0.1" From 2d163eab9c75b076b01fb39cc5da746bb02173f4 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 24 Feb 2020 10:58:11 +0100 Subject: [PATCH 04/12] Revert "force older graceful" This reverts commit d87166f19f207d3c4c8fbb070d3ae5b63a84d04d. --- package.json | 5 +---- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index afd83745a6b9..1770bdc3ea67 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "lint:prettier": "prettier '**/*.{md,yml,yaml}' 'website/static/**/*.{css,js}' --write --ignore-path .gitignore", "lint:prettier:ci": "prettier '**/*.{md,yml,yaml}' 'website/static/**/*.{css,js}' --check --ignore-path .gitignore", "postinstall": "opencollective postinstall && yarn build", - "install-no-ts-build": "node ./scripts/remove-postinstall && yarn --no-progress && node ./scripts/build", + "install-no-ts-build": "node ./scripts/remove-postinstall && yarn --no-progress --frozen-lockfile && node ./scripts/build", "remove-prettier-dep": "node ./scripts/remove-prettier-dep", "publish": "yarn build-clean && yarn build && lerna publish --silent", "test-ci-es5-build-in-browser": "karma start --single-run", @@ -142,8 +142,5 @@ }, "engines": { "node": ">= 8.3" - }, - "resolutions": { - "graceful-fs": "~4.1.15" } } diff --git a/yarn.lock b/yarn.lock index 5501a8ad726a..3f604de1b915 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2332,7 +2332,7 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3": +"@types/graceful-fs@^4.1.2": version "4.1.3" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== @@ -7479,10 +7479,10 @@ got@^8.3.1: url-parse-lax "^3.0.0" url-to-options "^1.0.1" -graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@~4.1.15: - version "4.1.15" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" - integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== +graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== "graceful-readlink@>= 1.0.0": version "1.0.1" From ade89a80130cb35b4e688d2daa51708d625c3179 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 24 Feb 2020 10:59:17 +0100 Subject: [PATCH 05/12] what about giving outer graceful? --- packages/jest-runtime/src/index.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index ecb2d25f3ef8..a93e68128ce5 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -481,7 +481,10 @@ class Runtime { modulePath = manualMock; } - if (moduleName && this._resolver.isCoreModule(moduleName)) { + if ( + moduleName === 'graceful-fs' || + (moduleName && this._resolver.isCoreModule(moduleName)) + ) { return this._requireCoreModule(moduleName); } From facbfedc20daee68c26f8726a40476b0e419559c Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Sun, 29 Mar 2020 11:53:59 +0200 Subject: [PATCH 06/12] Revert "what about giving outer graceful?" This reverts commit 8855c28a8767fcf6270ac109420c9d430e66adaa. --- packages/jest-runtime/src/index.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/jest-runtime/src/index.ts b/packages/jest-runtime/src/index.ts index a93e68128ce5..ecb2d25f3ef8 100644 --- a/packages/jest-runtime/src/index.ts +++ b/packages/jest-runtime/src/index.ts @@ -481,10 +481,7 @@ class Runtime { modulePath = manualMock; } - if ( - moduleName === 'graceful-fs' || - (moduleName && this._resolver.isCoreModule(moduleName)) - ) { + if (moduleName && this._resolver.isCoreModule(moduleName)) { return this._requireCoreModule(moduleName); } From ad7e8b3724c0b38dd9393cad6cb13bed006fc87a Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Sun, 29 Mar 2020 11:56:03 +0200 Subject: [PATCH 07/12] add graceful-fs patch --- package.json | 5 ++-- patches/graceful-fs+4.2.3.patch | 42 ++++++++++++++++++++++++++++ yarn.lock | 49 ++++++++++++++++++++++++++++++++- 3 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 patches/graceful-fs+4.2.3.patch diff --git a/package.json b/package.json index 1770bdc3ea67..a37ac03d50d3 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,7 @@ "mocha": "^7.0.0", "mock-fs": "^4.4.1", "opencollective": "^1.0.3", + "patch-package": "^6.2.1", "prettier": "^2.0.1", "progress": "^2.0.0", "promise": "^8.0.2", @@ -99,8 +100,8 @@ "lint-es5-build": "eslint --no-eslintrc --no-ignore --env=browser packages/*/build-es5", "lint:prettier": "prettier '**/*.{md,yml,yaml}' 'website/static/**/*.{css,js}' --write --ignore-path .gitignore", "lint:prettier:ci": "prettier '**/*.{md,yml,yaml}' 'website/static/**/*.{css,js}' --check --ignore-path .gitignore", - "postinstall": "opencollective postinstall && yarn build", - "install-no-ts-build": "node ./scripts/remove-postinstall && yarn --no-progress --frozen-lockfile && node ./scripts/build", + "postinstall": "opencollective postinstall && patch-package && yarn build", + "install-no-ts-build": "node ./scripts/remove-postinstall && yarn --no-progress --frozen-lockfile && patch-package && node ./scripts/build", "remove-prettier-dep": "node ./scripts/remove-prettier-dep", "publish": "yarn build-clean && yarn build && lerna publish --silent", "test-ci-es5-build-in-browser": "karma start --single-run", diff --git a/patches/graceful-fs+4.2.3.patch b/patches/graceful-fs+4.2.3.patch new file mode 100644 index 000000000000..125126b21ee8 --- /dev/null +++ b/patches/graceful-fs+4.2.3.patch @@ -0,0 +1,42 @@ +diff --git a/node_modules/graceful-fs/graceful-fs.js b/node_modules/graceful-fs/graceful-fs.js +index 8c75ee2..7bf8838 100644 +--- a/node_modules/graceful-fs/graceful-fs.js ++++ b/node_modules/graceful-fs/graceful-fs.js +@@ -32,10 +32,10 @@ else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) + } + + // Once time initialization +-if (!global[gracefulQueue]) { ++if (!fs[gracefulQueue]) { + // This queue can be shared by multiple loaded instances + var queue = [] +- Object.defineProperty(global, gracefulQueue, { ++ Object.defineProperty(fs, gracefulQueue, { + get: function() { + return queue + } +@@ -79,8 +79,8 @@ if (!global[gracefulQueue]) { + + if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { + process.on('exit', function() { +- debug(global[gracefulQueue]) +- require('assert').equal(global[gracefulQueue].length, 0) ++ debug(fs[gracefulQueue]) ++ require('assert').equal(fs[gracefulQueue].length, 0) + }) + } + } +@@ -334,11 +334,11 @@ function patch (fs) { + + function enqueue (elem) { + debug('ENQUEUE', elem[0].name, elem[1]) +- global[gracefulQueue].push(elem) ++ fs[gracefulQueue].push(elem) + } + + function retry () { +- var elem = global[gracefulQueue].shift() ++ var elem = fs[gracefulQueue].shift() + if (elem) { + debug('RETRY', elem[0].name, elem[1]) + elem[0].apply(null, elem[1]) diff --git a/yarn.lock b/yarn.lock index 3f604de1b915..78c5c853bbf0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2332,7 +2332,7 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/graceful-fs@^4.1.2": +"@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3": version "4.1.3" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== @@ -2811,6 +2811,11 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + "@zkochan/cmd-shim@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e" @@ -6919,6 +6924,14 @@ find-versions@^3.0.0: dependencies: semver-regex "^2.0.0" +find-yarn-workspace-root@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz#40eb8e6e7c2502ddfaa2577c176f221422f860db" + integrity sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q== + dependencies: + fs-extra "^4.0.3" + micromatch "^3.1.4" + flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" @@ -7027,6 +7040,15 @@ fs-extra@^1.0.0: jsonfile "^2.1.0" klaw "^1.0.0" +fs-extra@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -9164,6 +9186,13 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +klaw-sync@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" + integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== + dependencies: + graceful-fs "^4.1.11" + klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" @@ -11305,6 +11334,24 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= +patch-package@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.2.1.tgz#e3c55cf09dffd3984dd300e30d842672b604307f" + integrity sha512-dfCtQor63PPij6DDYtCzBRoO5nNAcMSg7Cmh+DLhR+s3t0OLQBdvFxJksZHBe1J2MjsSWDjTF4+oQKFbdkssIg== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + chalk "^2.4.2" + cross-spawn "^6.0.5" + find-yarn-workspace-root "^1.2.1" + fs-extra "^7.0.1" + is-ci "^2.0.0" + klaw-sync "^6.0.0" + minimist "^1.2.0" + rimraf "^2.6.3" + semver "^5.6.0" + slash "^2.0.0" + tmp "^0.0.33" + path-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" From 88e41c35a24bf2878f97dc713df9197837a6aa2c Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Mon, 13 Apr 2020 14:52:15 +0200 Subject: [PATCH 08/12] new patch --- patches/graceful-fs+4.2.3.patch | 46 ++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/patches/graceful-fs+4.2.3.patch b/patches/graceful-fs+4.2.3.patch index 125126b21ee8..6a3304b4146e 100644 --- a/patches/graceful-fs+4.2.3.patch +++ b/patches/graceful-fs+4.2.3.patch @@ -1,21 +1,41 @@ diff --git a/node_modules/graceful-fs/graceful-fs.js b/node_modules/graceful-fs/graceful-fs.js -index 8c75ee2..7bf8838 100644 +index 8c75ee2..de3df47 100644 --- a/node_modules/graceful-fs/graceful-fs.js +++ b/node_modules/graceful-fs/graceful-fs.js -@@ -32,10 +32,10 @@ else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) +@@ -21,6 +21,14 @@ if (typeof Symbol === 'function' && typeof Symbol.for === 'function') { + + function noop () {} + ++function publishQueue(context, queue) { ++ Object.defineProperty(context, gracefulQueue, { ++ get: function() { ++ return queue ++ } ++ }) ++} ++ + var debug = noop + if (util.debuglog) + debug = util.debuglog('gfs4') +@@ -32,14 +40,10 @@ else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) } // Once time initialization -if (!global[gracefulQueue]) { +if (!fs[gracefulQueue]) { // This queue can be shared by multiple loaded instances - var queue = [] +- var queue = [] - Object.defineProperty(global, gracefulQueue, { -+ Object.defineProperty(fs, gracefulQueue, { - get: function() { - return queue - } -@@ -79,8 +79,8 @@ if (!global[gracefulQueue]) { +- get: function() { +- return queue +- } +- }) ++ var queue = global[gracefulQueue] || [] ++ publishQueue(fs, queue) + + // Patch fs.close/closeSync to shared queue version, because we need + // to retry() whenever a close happens *anywhere* in the program. +@@ -79,12 +83,16 @@ if (!global[gracefulQueue]) { if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { process.on('exit', function() { @@ -26,7 +46,15 @@ index 8c75ee2..7bf8838 100644 }) } } -@@ -334,11 +334,11 @@ function patch (fs) { + ++if (!global[gracefulQueue]) { ++ publishQueue(global, fs[gracefulQueue]); ++} ++ + module.exports = patch(clone(fs)) + if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) { + module.exports = patch(fs) +@@ -334,11 +342,11 @@ function patch (fs) { function enqueue (elem) { debug('ENQUEUE', elem[0].name, elem[1]) From 8044b1b6a7f58af6bcee947380fa424e90cec2e3 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Tue, 28 Apr 2020 19:45:40 +0200 Subject: [PATCH 09/12] Revert "add graceful-fs patch" This reverts commit ad7e8b3724c0b38dd9393cad6cb13bed006fc87a. --- package.json | 5 +-- patches/graceful-fs+4.2.3.patch | 70 --------------------------------- yarn.lock | 49 +---------------------- 3 files changed, 3 insertions(+), 121 deletions(-) delete mode 100644 patches/graceful-fs+4.2.3.patch diff --git a/package.json b/package.json index a37ac03d50d3..1770bdc3ea67 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,6 @@ "mocha": "^7.0.0", "mock-fs": "^4.4.1", "opencollective": "^1.0.3", - "patch-package": "^6.2.1", "prettier": "^2.0.1", "progress": "^2.0.0", "promise": "^8.0.2", @@ -100,8 +99,8 @@ "lint-es5-build": "eslint --no-eslintrc --no-ignore --env=browser packages/*/build-es5", "lint:prettier": "prettier '**/*.{md,yml,yaml}' 'website/static/**/*.{css,js}' --write --ignore-path .gitignore", "lint:prettier:ci": "prettier '**/*.{md,yml,yaml}' 'website/static/**/*.{css,js}' --check --ignore-path .gitignore", - "postinstall": "opencollective postinstall && patch-package && yarn build", - "install-no-ts-build": "node ./scripts/remove-postinstall && yarn --no-progress --frozen-lockfile && patch-package && node ./scripts/build", + "postinstall": "opencollective postinstall && yarn build", + "install-no-ts-build": "node ./scripts/remove-postinstall && yarn --no-progress --frozen-lockfile && node ./scripts/build", "remove-prettier-dep": "node ./scripts/remove-prettier-dep", "publish": "yarn build-clean && yarn build && lerna publish --silent", "test-ci-es5-build-in-browser": "karma start --single-run", diff --git a/patches/graceful-fs+4.2.3.patch b/patches/graceful-fs+4.2.3.patch deleted file mode 100644 index 6a3304b4146e..000000000000 --- a/patches/graceful-fs+4.2.3.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/node_modules/graceful-fs/graceful-fs.js b/node_modules/graceful-fs/graceful-fs.js -index 8c75ee2..de3df47 100644 ---- a/node_modules/graceful-fs/graceful-fs.js -+++ b/node_modules/graceful-fs/graceful-fs.js -@@ -21,6 +21,14 @@ if (typeof Symbol === 'function' && typeof Symbol.for === 'function') { - - function noop () {} - -+function publishQueue(context, queue) { -+ Object.defineProperty(context, gracefulQueue, { -+ get: function() { -+ return queue -+ } -+ }) -+} -+ - var debug = noop - if (util.debuglog) - debug = util.debuglog('gfs4') -@@ -32,14 +40,10 @@ else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) - } - - // Once time initialization --if (!global[gracefulQueue]) { -+if (!fs[gracefulQueue]) { - // This queue can be shared by multiple loaded instances -- var queue = [] -- Object.defineProperty(global, gracefulQueue, { -- get: function() { -- return queue -- } -- }) -+ var queue = global[gracefulQueue] || [] -+ publishQueue(fs, queue) - - // Patch fs.close/closeSync to shared queue version, because we need - // to retry() whenever a close happens *anywhere* in the program. -@@ -79,12 +83,16 @@ if (!global[gracefulQueue]) { - - if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { - process.on('exit', function() { -- debug(global[gracefulQueue]) -- require('assert').equal(global[gracefulQueue].length, 0) -+ debug(fs[gracefulQueue]) -+ require('assert').equal(fs[gracefulQueue].length, 0) - }) - } - } - -+if (!global[gracefulQueue]) { -+ publishQueue(global, fs[gracefulQueue]); -+} -+ - module.exports = patch(clone(fs)) - if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) { - module.exports = patch(fs) -@@ -334,11 +342,11 @@ function patch (fs) { - - function enqueue (elem) { - debug('ENQUEUE', elem[0].name, elem[1]) -- global[gracefulQueue].push(elem) -+ fs[gracefulQueue].push(elem) - } - - function retry () { -- var elem = global[gracefulQueue].shift() -+ var elem = fs[gracefulQueue].shift() - if (elem) { - debug('RETRY', elem[0].name, elem[1]) - elem[0].apply(null, elem[1]) diff --git a/yarn.lock b/yarn.lock index e91d427d4d52..9ca11d8bef55 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2332,7 +2332,7 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3": +"@types/graceful-fs@^4.1.2": version "4.1.3" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== @@ -2811,11 +2811,6 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -"@yarnpkg/lockfile@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" - integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== - "@zkochan/cmd-shim@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e" @@ -6924,14 +6919,6 @@ find-versions@^3.0.0: dependencies: semver-regex "^2.0.0" -find-yarn-workspace-root@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz#40eb8e6e7c2502ddfaa2577c176f221422f860db" - integrity sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q== - dependencies: - fs-extra "^4.0.3" - micromatch "^3.1.4" - flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" @@ -7040,15 +7027,6 @@ fs-extra@^1.0.0: jsonfile "^2.1.0" klaw "^1.0.0" -fs-extra@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -9186,13 +9164,6 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -klaw-sync@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" - integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== - dependencies: - graceful-fs "^4.1.11" - klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" @@ -11334,24 +11305,6 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -patch-package@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.2.1.tgz#e3c55cf09dffd3984dd300e30d842672b604307f" - integrity sha512-dfCtQor63PPij6DDYtCzBRoO5nNAcMSg7Cmh+DLhR+s3t0OLQBdvFxJksZHBe1J2MjsSWDjTF4+oQKFbdkssIg== - dependencies: - "@yarnpkg/lockfile" "^1.1.0" - chalk "^2.4.2" - cross-spawn "^6.0.5" - find-yarn-workspace-root "^1.2.1" - fs-extra "^7.0.1" - is-ci "^2.0.0" - klaw-sync "^6.0.0" - minimist "^1.2.0" - rimraf "^2.6.3" - semver "^5.6.0" - slash "^2.0.0" - tmp "^0.0.33" - path-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" From 766a329eb54d7bb81e649f17abec7302b3bff68d Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Tue, 28 Apr 2020 19:47:13 +0200 Subject: [PATCH 10/12] bump graceful --- package.json | 2 +- packages/babel-jest/package.json | 2 +- packages/jest-circus/package.json | 2 +- packages/jest-cli/package.json | 2 +- packages/jest-config/package.json | 2 +- packages/jest-core/package.json | 2 +- packages/jest-haste-map/package.json | 2 +- packages/jest-message-util/package.json | 2 +- packages/jest-reporters/package.json | 2 +- packages/jest-resolve/package.json | 2 +- packages/jest-runner/package.json | 2 +- packages/jest-runtime/package.json | 2 +- packages/jest-serializer/package.json | 2 +- packages/jest-snapshot/package.json | 2 +- packages/jest-source-map/package.json | 2 +- packages/jest-test-sequencer/package.json | 2 +- packages/jest-transform/package.json | 2 +- packages/jest-util/package.json | 2 +- yarn.lock | 10 +++++----- 19 files changed, 23 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index 1770bdc3ea67..663c67c7111b 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "find-process": "^1.4.1", "glob": "^7.1.1", "globby": "^10.0.2", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "isbinaryfile": "^4.0.0", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-report": "^3.0.0", diff --git a/packages/babel-jest/package.json b/packages/babel-jest/package.json index 8bc8360c884e..c3369ac4510d 100644 --- a/packages/babel-jest/package.json +++ b/packages/babel-jest/package.json @@ -24,7 +24,7 @@ "babel-plugin-istanbul": "^6.0.0", "babel-preset-jest": "^25.4.0", "chalk": "^3.0.0", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "slash": "^3.0.0" }, "devDependencies": { diff --git a/packages/jest-circus/package.json b/packages/jest-circus/package.json index f29dc29cbb6f..3b365c63e79c 100644 --- a/packages/jest-circus/package.json +++ b/packages/jest-circus/package.json @@ -44,7 +44,7 @@ "@types/graceful-fs": "^4.1.3", "@types/stack-utils": "^1.0.1", "execa": "^3.2.0", - "graceful-fs": "^4.2.3" + "graceful-fs": "^4.2.4" }, "engines": { "node": ">= 8.3" diff --git a/packages/jest-cli/package.json b/packages/jest-cli/package.json index cd9886a77888..084c2bb7ab89 100644 --- a/packages/jest-cli/package.json +++ b/packages/jest-cli/package.json @@ -17,7 +17,7 @@ "@jest/types": "^25.4.0", "chalk": "^3.0.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "import-local": "^3.0.2", "is-ci": "^2.0.0", "jest-config": "^25.4.0", diff --git a/packages/jest-config/package.json b/packages/jest-config/package.json index 400864e88992..50a2fd5a8e1d 100644 --- a/packages/jest-config/package.json +++ b/packages/jest-config/package.json @@ -24,7 +24,7 @@ "chalk": "^3.0.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "jest-environment-jsdom": "^25.4.0", "jest-environment-node": "^25.4.0", "jest-get-type": "^25.2.6", diff --git a/packages/jest-core/package.json b/packages/jest-core/package.json index 19a6c5d804b8..90cf157dac3b 100644 --- a/packages/jest-core/package.json +++ b/packages/jest-core/package.json @@ -20,7 +20,7 @@ "ansi-escapes": "^4.2.1", "chalk": "^3.0.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "jest-changed-files": "^25.4.0", "jest-config": "^25.4.0", "jest-haste-map": "^25.4.0", diff --git a/packages/jest-haste-map/package.json b/packages/jest-haste-map/package.json index 8d8db4832b20..7546dd48cb71 100644 --- a/packages/jest-haste-map/package.json +++ b/packages/jest-haste-map/package.json @@ -20,7 +20,7 @@ "@jest/types": "^25.4.0", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "jest-serializer": "^25.2.6", "jest-util": "^25.4.0", "jest-worker": "^25.4.0", diff --git a/packages/jest-message-util/package.json b/packages/jest-message-util/package.json index c0659aac3627..b175037ba21c 100644 --- a/packages/jest-message-util/package.json +++ b/packages/jest-message-util/package.json @@ -24,7 +24,7 @@ "@jest/types": "^25.4.0", "@types/stack-utils": "^1.0.1", "chalk": "^3.0.0", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "micromatch": "^4.0.2", "slash": "^3.0.0", "stack-utils": "^1.0.1" diff --git a/packages/jest-reporters/package.json b/packages/jest-reporters/package.json index 7194df92d2f1..8e7e2ad053f6 100644 --- a/packages/jest-reporters/package.json +++ b/packages/jest-reporters/package.json @@ -20,7 +20,7 @@ "chalk": "^3.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "glob": "^7.1.2", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^4.0.0", diff --git a/packages/jest-resolve/package.json b/packages/jest-resolve/package.json index 1114fb3284d6..6cf9500d1bd8 100644 --- a/packages/jest-resolve/package.json +++ b/packages/jest-resolve/package.json @@ -20,7 +20,7 @@ "@jest/types": "^25.4.0", "browser-resolve": "^1.11.3", "chalk": "^3.0.0", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "jest-pnp-resolver": "^1.2.1", "read-pkg-up": "^7.0.1", "realpath-native": "^2.0.0", diff --git a/packages/jest-runner/package.json b/packages/jest-runner/package.json index 87c46de216ca..fcd5c6cb1b26 100644 --- a/packages/jest-runner/package.json +++ b/packages/jest-runner/package.json @@ -23,7 +23,7 @@ "@jest/types": "^25.4.0", "chalk": "^3.0.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "jest-config": "^25.4.0", "jest-docblock": "^25.3.0", "jest-haste-map": "^25.4.0", diff --git a/packages/jest-runtime/package.json b/packages/jest-runtime/package.json index 856194f2d8fc..af984cb9770b 100644 --- a/packages/jest-runtime/package.json +++ b/packages/jest-runtime/package.json @@ -29,7 +29,7 @@ "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.3", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "jest-config": "^25.4.0", "jest-haste-map": "^25.4.0", "jest-message-util": "^25.4.0", diff --git a/packages/jest-serializer/package.json b/packages/jest-serializer/package.json index 530d922ba2f3..33d59529d280 100644 --- a/packages/jest-serializer/package.json +++ b/packages/jest-serializer/package.json @@ -11,7 +11,7 @@ "@types/node": "*" }, "dependencies": { - "graceful-fs": "^4.2.3" + "graceful-fs": "^4.2.4" }, "engines": { "node": ">= 8.3" diff --git a/packages/jest-snapshot/package.json b/packages/jest-snapshot/package.json index f258ead48261..0bba3bb1cd09 100644 --- a/packages/jest-snapshot/package.json +++ b/packages/jest-snapshot/package.json @@ -22,7 +22,7 @@ "@types/prettier": "^1.19.0", "chalk": "^3.0.0", "expect": "^25.4.0", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "jest-diff": "^25.4.0", "jest-get-type": "^25.2.6", "jest-matcher-utils": "^25.4.0", diff --git a/packages/jest-source-map/package.json b/packages/jest-source-map/package.json index 35dd3a4b03c5..b3ef5b168916 100644 --- a/packages/jest-source-map/package.json +++ b/packages/jest-source-map/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "callsites": "^3.0.0", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "source-map": "^0.6.0" }, "devDependencies": { diff --git a/packages/jest-test-sequencer/package.json b/packages/jest-test-sequencer/package.json index e0939a466d28..118532b461f6 100644 --- a/packages/jest-test-sequencer/package.json +++ b/packages/jest-test-sequencer/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "@jest/test-result": "^25.4.0", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "jest-haste-map": "^25.4.0", "jest-runner": "^25.4.0", "jest-runtime": "^25.4.0" diff --git a/packages/jest-transform/package.json b/packages/jest-transform/package.json index d3e250138097..034b2e09d5ae 100644 --- a/packages/jest-transform/package.json +++ b/packages/jest-transform/package.json @@ -23,7 +23,7 @@ "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "jest-haste-map": "^25.4.0", "jest-regex-util": "^25.2.6", "jest-util": "^25.4.0", diff --git a/packages/jest-util/package.json b/packages/jest-util/package.json index 3e7dcafd3c8d..2348fcb9be09 100644 --- a/packages/jest-util/package.json +++ b/packages/jest-util/package.json @@ -19,7 +19,7 @@ "dependencies": { "@jest/types": "^25.4.0", "chalk": "^3.0.0", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "is-ci": "^2.0.0", "make-dir": "^3.0.0" }, diff --git a/yarn.lock b/yarn.lock index 9ca11d8bef55..253db2b1ef97 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2332,7 +2332,7 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/graceful-fs@^4.1.2": +"@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3": version "4.1.3" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== @@ -7479,10 +7479,10 @@ got@^8.3.1: url-parse-lax "^3.0.0" url-to-options "^1.0.1" -graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== +graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== "graceful-readlink@>= 1.0.0": version "1.0.1" From a2a78023f25ea7f91cb02dc0c96267c5c3ee6289 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Tue, 28 Apr 2020 19:50:22 +0200 Subject: [PATCH 11/12] move changelog entry to correct place --- CHANGELOG.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed3e8d61b13b..f204c42602c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ ### Fixes +- `[*]` Use `graceful-fs` directly in every package instead of relying on `fs` being monkey patched ([#9443](https://github.com/facebook/jest/pull/9443)) - `[expect]` Prints the Symbol name into the error message with a custom asymmetric matcher ([#9888](https://github.com/facebook/jest/pull/9888)) - `[jest-circus, jest-jasmine2]` Support older version of `jest-runtime` ([#9903](https://github.com/facebook/jest/pull/9903) & [#9842](https://github.com/facebook/jest/pull/9842)) - `[@jest/environment]` Make sure not to reference Jest types ([#9875](https://github.com/facebook/jest/pull/9875)) @@ -34,7 +35,6 @@ ### Fixes -- `[*]` Use `graceful-fs` directly in every package instead of relying on `fs` being monkey patched ([#9443](https://github.com/facebook/jest/pull/9443)) - `[expect]` Restore support for passing functions to `toHaveLength` matcher ([#9796](https://github.com/facebook/jest/pull/9796)) - `[jest-changed-files]` `--only-changed` should include staged files ([#9799](https://github.com/facebook/jest/pull/9799)) - `[jest-circus]` Throw on nested test definitions ([#9828](https://github.com/facebook/jest/pull/9828)) @@ -46,8 +46,6 @@ - `[*]` Do not generate TypeScript declaration source maps ([#9822](https://github.com/facebook/jest/pull/9822)) - `[*]` Transpile code for Node 8.3, not 8.0 ([#9827](https://github.com/facebook/jest/pull/9827)) -### Performance - ## 25.3.0 ### Features From 2bf52e8345c8706e67c0695db49eed5d1366c54f Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Tue, 28 Apr 2020 19:52:01 +0200 Subject: [PATCH 12/12] Revert "log heap usage" This reverts commit d19bdb525022e5d8a7b4fd77b81c54b3ffd4bc64. --- jest | 2 +- jest.config.ci.js | 5 ++++- package.json | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/jest b/jest index d0800e81502e..46e2bc65dbb8 100755 --- a/jest +++ b/jest @@ -9,4 +9,4 @@ LICENSE file in the root directory of this source tree. DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -node "$DIR"/packages/jest-cli/bin/jest "$@" --log-heap-usage +node "$DIR"/packages/jest-cli/bin/jest "$@" diff --git a/jest.config.ci.js b/jest.config.ci.js index 2f245687edce..68e16b4300ac 100644 --- a/jest.config.ci.js +++ b/jest.config.ci.js @@ -15,6 +15,9 @@ module.exports = { 'jest-junit', {outputDirectory: 'reports/junit', outputName: 'js-test-results.xml'}, ], - 'default', + [ + 'jest-silent-reporter', + {showPaths: true, showWarnings: true, useDots: true}, + ], ], }; diff --git a/package.json b/package.json index 663c67c7111b..338d2679d898 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "check-copyright-headers": "node ./scripts/checkCopyrightHeaders.js", "clean-all": "yarn clean-e2e && yarn build-clean && rimraf ./packages/*/node_modules && rimraf ./node_modules", "clean-e2e": "node ./scripts/cleanE2e.js", - "jest": "node ./packages/jest-cli/bin/jest.js --log-heap-usage", + "jest": "node ./packages/jest-cli/bin/jest.js", "jest-coverage": "yarn jest --coverage", "lint": "eslint . --cache --ext js,jsx,ts,tsx,md", "lint-es5-build": "eslint --no-eslintrc --no-ignore --env=browser packages/*/build-es5",