diff --git a/.circleci/config.yml b/.circleci/config.yml index a29f7e918b73..1df2d39ff02c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -70,5 +70,5 @@ workflows: partial: true matrix: parameters: - node-version: ['10', '12', '15', '16', '17'] + node-version: ['12', '16', '17'] - test-jest-jasmine diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index a37e014a732d..09a5dd8b3b23 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -69,7 +69,7 @@ jobs: strategy: fail-fast: false matrix: - node-version: [10.x, 12.x, 14.x, 15.x, 16.x, 17.x] + node-version: [12.x, 14.x, 16.x, 17.x] os: [ubuntu-latest, macOS-latest, windows-latest] runs-on: ${{ matrix.os }} needs: prepare-yarn-cache diff --git a/e2e/__tests__/consoleLogOutputWhenRunInBand.test.ts b/e2e/__tests__/consoleLogOutputWhenRunInBand.test.ts index 3e505c906365..618c48048ef6 100644 --- a/e2e/__tests__/consoleLogOutputWhenRunInBand.test.ts +++ b/e2e/__tests__/consoleLogOutputWhenRunInBand.test.ts @@ -15,8 +15,6 @@ const DIR = path.resolve(__dirname, '../console-log-output-when-run-in-band'); beforeEach(() => cleanup(DIR)); afterAll(() => cleanup(DIR)); -const nodeMajorVersion = Number(process.versions.node.split('.')[0]); - test('prints console.logs when run with forceExit', () => { writeFiles(DIR, { '__tests__/a-banana.js': ` @@ -25,26 +23,14 @@ test('prints console.logs when run with forceExit', () => { 'package.json': '{}', }); - const {stderr, exitCode, ...res} = runJest(DIR, [ + const {stderr, stdout, exitCode} = runJest(DIR, [ '-i', '--ci=false', '--forceExit', ]); - let {stdout} = res; const {rest, summary} = extractSummary(stderr); - if (nodeMajorVersion < 12) { - expect(stdout).toContain( - 'at Object..test (__tests__/a-banana.js:1:1)', - ); - - stdout = stdout.replace( - 'at Object..test (__tests__/a-banana.js:1:1)', - 'at Object. (__tests__/a-banana.js:1:1)', - ); - } - expect(exitCode).toBe(0); expect(wrap(rest)).toMatchSnapshot(); expect(wrap(summary)).toMatchSnapshot(); diff --git a/e2e/__tests__/detectOpenHandles.ts b/e2e/__tests__/detectOpenHandles.ts index 714b64f441ca..54ecd12b9b5d 100644 --- a/e2e/__tests__/detectOpenHandles.ts +++ b/e2e/__tests__/detectOpenHandles.ts @@ -6,7 +6,6 @@ */ import {wrap} from 'jest-snapshot-serializer-raw'; -import {onNodeVersions} from '@jest/test-utils'; import runJest, {runContinuous} from '../runJest'; try { @@ -82,16 +81,14 @@ it('does not report crypto random data', () => { expect(textAfterTest).toBe(''); }); -onNodeVersions('>=12', () => { - it('does not report ELD histograms', () => { - const {stderr} = runJest('detect-open-handles', [ - 'histogram', - '--detectOpenHandles', - ]); - const textAfterTest = getTextAfterTest(stderr); +it('does not report ELD histograms', () => { + const {stderr} = runJest('detect-open-handles', [ + 'histogram', + '--detectOpenHandles', + ]); + const textAfterTest = getTextAfterTest(stderr); - expect(textAfterTest).toBe(''); - }); + expect(textAfterTest).toBe(''); }); describe('notify', () => { @@ -110,17 +107,15 @@ describe('notify', () => { }); }); -onNodeVersions('>=12', () => { - it('does not report timeouts using unref', () => { - // The test here is basically that it exits cleanly without reporting anything (does not need `until`) - const {stderr} = runJest('detect-open-handles', [ - 'unref', - '--detectOpenHandles', - ]); - const textAfterTest = getTextAfterTest(stderr); +it('does not report timeouts using unref', () => { + // The test here is basically that it exits cleanly without reporting anything (does not need `until`) + const {stderr} = runJest('detect-open-handles', [ + 'unref', + '--detectOpenHandles', + ]); + const textAfterTest = getTextAfterTest(stderr); - expect(textAfterTest).toBe(''); - }); + expect(textAfterTest).toBe(''); }); it('prints out info about open handlers from inside tests', async () => { diff --git a/e2e/__tests__/errorOnDeprecated.test.ts b/e2e/__tests__/errorOnDeprecated.test.ts index e0d2f1d28e4c..5ed71638a48f 100644 --- a/e2e/__tests__/errorOnDeprecated.test.ts +++ b/e2e/__tests__/errorOnDeprecated.test.ts @@ -32,8 +32,6 @@ const SHOULD_NOT_PASS_IN_JEST = new Set([ 'spyOnProperty.test.js', ]); -const nodeMajorVersion = Number(process.versions.node.split('.')[0]); - testFiles.forEach(testFile => { test(`${testFile} errors in errorOnDeprecated mode`, () => { const result = runJest('error-on-deprecated', [ @@ -41,21 +39,7 @@ testFiles.forEach(testFile => { '--errorOnDeprecated', ]); expect(result.exitCode).toBe(1); - let {rest} = extractSummary(result.stderr); - - if ( - nodeMajorVersion < 12 && - testFile === 'defaultTimeoutInterval.test.js' - ) { - const lineEntry = '(__tests__/defaultTimeoutInterval.test.js:10:3)'; - - expect(rest).toContain(`at Object..test ${lineEntry}`); - - rest = rest.replace( - `at Object..test ${lineEntry}`, - `at Object. ${lineEntry}`, - ); - } + const {rest} = extractSummary(result.stderr); expect(wrap(rest)).toMatchSnapshot(); }); diff --git a/e2e/__tests__/failures.test.ts b/e2e/__tests__/failures.test.ts index 48c96cc974b3..61dfd108ab2a 100644 --- a/e2e/__tests__/failures.test.ts +++ b/e2e/__tests__/failures.test.ts @@ -21,8 +21,6 @@ function cleanStderr(stderr: string) { .replace(new RegExp('Failed: Object {', 'g'), 'thrown: Object {'); } -const nodeMajorVersion = Number(process.versions.node.split('.')[0]); - beforeAll(() => { runYarnInstall(dir); }); @@ -38,18 +36,6 @@ test('not throwing Error objects', () => { stderr = runJest(dir, ['assertionCount.test.js']).stderr; expect(wrap(cleanStderr(stderr))).toMatchSnapshot(); stderr = runJest(dir, ['duringTests.test.js']).stderr; - - if (nodeMajorVersion < 12) { - const lineEntry = '(__tests__/duringTests.test.js:43:8)'; - - expect(stderr).toContain(`at Object..done ${lineEntry}`); - - stderr = stderr.replace( - `at Object..done ${lineEntry}`, - `at Object. ${lineEntry}`, - ); - } - expect(wrap(cleanStderr(stderr))).toMatchSnapshot(); stderr = runJest(dir, ['throwObjectWithStackProp.test.js']).stderr; expect(wrap(cleanStderr(stderr))).toMatchSnapshot(); diff --git a/e2e/__tests__/requireMainAfterCreateRequire.test.ts b/e2e/__tests__/requireMainAfterCreateRequire.test.ts index 6bd837366974..95ef949fd5c2 100644 --- a/e2e/__tests__/requireMainAfterCreateRequire.test.ts +++ b/e2e/__tests__/requireMainAfterCreateRequire.test.ts @@ -4,19 +4,17 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ + import * as path from 'path'; -import {onNodeVersions} from '@jest/test-utils'; import runJest from '../runJest'; -onNodeVersions('>=12.2.0', () => { - test('`require.main` not undefined after createRequire', () => { - const {stdout} = runJest('require-main-after-create-require'); +test('`require.main` not undefined after createRequire', () => { + const {stdout} = runJest('require-main-after-create-require'); - expect(stdout).toBe( - path.join( - __dirname, - '../require-main-after-create-require/__tests__/parent.test.js', - ), - ); - }); + expect(stdout).toBe( + path.join( + __dirname, + '../require-main-after-create-require/__tests__/parent.test.js', + ), + ); }); diff --git a/e2e/__tests__/unexpectedToken.test.ts b/e2e/__tests__/unexpectedToken.test.ts index 9d119fcb33f2..65f2e96a9828 100644 --- a/e2e/__tests__/unexpectedToken.test.ts +++ b/e2e/__tests__/unexpectedToken.test.ts @@ -11,7 +11,6 @@ import {cleanup, writeFiles} from '../Utils'; import runJest from '../runJest'; const DIR = path.resolve(tmpdir(), 'unexpected-token'); -const nodeMajorVersion = Number(process.versions.node.split('.')[0]); beforeEach(() => cleanup(DIR)); afterEach(() => cleanup(DIR)); @@ -51,13 +50,9 @@ test('triggers unexpected token error message for untranspiled node_modules', () expect(stdout).toBe(''); expect(stderr).toMatch(/Jest encountered an unexpected token/); expect(stderr).toMatch(/import {module}/); - if (nodeMajorVersion < 12) { - expect(stderr).toMatch(/Unexpected token/); - } else { - expect(stderr).toMatch( - /SyntaxError: Cannot use import statement outside a module/, - ); - } + expect(stderr).toMatch( + /SyntaxError: Cannot use import statement outside a module/, + ); }); test('does not trigger unexpected token error message for regular syntax errors', () => { diff --git a/package.json b/package.json index 50722a15bb2b..9bd1dda406d8 100644 --- a/package.json +++ b/package.json @@ -13,13 +13,13 @@ "@crowdin/cli": "^3.5.2", "@jest/globals": "workspace:*", "@jest/test-utils": "workspace:*", - "@tsconfig/node10": "^1.0.8", + "@tsconfig/node12": "^1.0.9", "@types/babel__core": "^7.0.0", "@types/babel__generator": "^7.0.0", "@types/babel__template": "^7.0.0", "@types/dedent": "0.7.0", "@types/jest": "^26.0.15", - "@types/node": "~10.14.0", + "@types/node": "~12.12.0", "@types/which": "^2.0.0", "@typescript-eslint/eslint-plugin": "^4.1.0", "@typescript-eslint/parser": "^4.1.0", @@ -146,7 +146,7 @@ "logo": "https://opencollective.com/jest/logo.txt" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "resolutions": { "@jest/create-cache-key-function": "workspace:*", diff --git a/packages/babel-jest/package.json b/packages/babel-jest/package.json index aee537ce5b66..1a2aff3438fc 100644 --- a/packages/babel-jest/package.json +++ b/packages/babel-jest/package.json @@ -36,7 +36,7 @@ "@babel/core": "^7.8.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/babel-plugin-jest-hoist/package.json b/packages/babel-plugin-jest-hoist/package.json index 3f0fbdcee042..68fb54787230 100644 --- a/packages/babel-plugin-jest-hoist/package.json +++ b/packages/babel-plugin-jest-hoist/package.json @@ -7,7 +7,7 @@ "directory": "packages/babel-plugin-jest-hoist" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "license": "MIT", "main": "./build/index.js", diff --git a/packages/babel-preset-jest/package.json b/packages/babel-preset-jest/package.json index 2377e9ba8aac..761ea305f97b 100644 --- a/packages/babel-preset-jest/package.json +++ b/packages/babel-preset-jest/package.json @@ -20,7 +20,7 @@ "@babel/core": "^7.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/diff-sequences/package.json b/packages/diff-sequences/package.json index 0eb655364124..1afa8ffb67ca 100644 --- a/packages/diff-sequences/package.json +++ b/packages/diff-sequences/package.json @@ -16,7 +16,7 @@ "diff" ], "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "main": "./build/index.js", "types": "./build/index.d.ts", diff --git a/packages/expect/package.json b/packages/expect/package.json index d0e899662727..59017b92f5ec 100644 --- a/packages/expect/package.json +++ b/packages/expect/package.json @@ -31,7 +31,7 @@ "immutable": "^4.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-changed-files/package.json b/packages/jest-changed-files/package.json index 8fa84dfe13bb..6310acea41d3 100644 --- a/packages/jest-changed-files/package.json +++ b/packages/jest-changed-files/package.json @@ -22,7 +22,7 @@ "throat": "^6.0.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-circus/package.json b/packages/jest-circus/package.json index 118daa8b47b7..34e061ce485b 100644 --- a/packages/jest-circus/package.json +++ b/packages/jest-circus/package.json @@ -50,7 +50,7 @@ "jest-snapshot-serializer-raw": "^1.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-cli/package.json b/packages/jest-cli/package.json index 89b104fc1881..491ff5f82a12 100644 --- a/packages/jest-cli/package.json +++ b/packages/jest-cli/package.json @@ -44,7 +44,7 @@ "jest": "./bin/jest.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "repository": { "type": "git", diff --git a/packages/jest-config/package.json b/packages/jest-config/package.json index 4c2c601828f9..eeaf56d24677 100644 --- a/packages/jest-config/package.json +++ b/packages/jest-config/package.json @@ -59,7 +59,7 @@ "typescript": "^4.0.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-console/package.json b/packages/jest-console/package.json index 723e9e0a38aa..74fd05faf6e2 100644 --- a/packages/jest-console/package.json +++ b/packages/jest-console/package.json @@ -29,7 +29,7 @@ "@types/node": "*" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-core/package.json b/packages/jest-core/package.json index 4b8cf521e94b..4afbe57071ac 100644 --- a/packages/jest-core/package.json +++ b/packages/jest-core/package.json @@ -59,7 +59,7 @@ } }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "repository": { "type": "git", diff --git a/packages/jest-core/src/collectHandles.ts b/packages/jest-core/src/collectHandles.ts index 72fea6ee6b94..88fe14a4b1de 100644 --- a/packages/jest-core/src/collectHandles.ts +++ b/packages/jest-core/src/collectHandles.ts @@ -40,7 +40,7 @@ function stackIsFromUser(stack: string) { const alwaysActive = () => true; -// @ts-expect-error: doesn't exist in v10 typings +// @ts-expect-error: doesn't exist in v12 typings const hasWeakRef = typeof WeakRef === 'function'; const asyncSleep = promisify(setTimeout); @@ -97,13 +97,12 @@ export default function collectHandles(): HandleCollectionResult { // Timer that supports hasRef (Node v11+) if ('hasRef' in resource) { if (hasWeakRef) { - // @ts-expect-error: doesn't exist in v10 typings + // @ts-expect-error: doesn't exist in v12 typings const ref = new WeakRef(resource); isActive = () => { return ref.deref()?.hasRef() ?? false; }; } else { - // @ts-expect-error: doesn't exist in v10 typings isActive = resource.hasRef.bind(resource); } } else { diff --git a/packages/jest-create-cache-key-function/package.json b/packages/jest-create-cache-key-function/package.json index 2677f87e3f09..f34a4d08ff46 100644 --- a/packages/jest-create-cache-key-function/package.json +++ b/packages/jest-create-cache-key-function/package.json @@ -14,7 +14,7 @@ "jest-util": "^27.4.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "license": "MIT", "main": "./build/index.js", diff --git a/packages/jest-diff/package.json b/packages/jest-diff/package.json index 06721f8fcea7..8560322c6c60 100644 --- a/packages/jest-diff/package.json +++ b/packages/jest-diff/package.json @@ -27,7 +27,7 @@ "strip-ansi": "^6.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-docblock/package.json b/packages/jest-docblock/package.json index 2d41bd6b981a..72f717bdba28 100644 --- a/packages/jest-docblock/package.json +++ b/packages/jest-docblock/package.json @@ -23,7 +23,7 @@ "@types/node": "*" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-each/package.json b/packages/jest-each/package.json index 4e3b6eb5508e..da7fd09e6954 100644 --- a/packages/jest-each/package.json +++ b/packages/jest-each/package.json @@ -32,7 +32,7 @@ "pretty-format": "^27.4.6" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-environment-jsdom/package.json b/packages/jest-environment-jsdom/package.json index 2c07970b64cb..37ebfb6fddfe 100644 --- a/packages/jest-environment-jsdom/package.json +++ b/packages/jest-environment-jsdom/package.json @@ -30,7 +30,7 @@ "@types/jsdom": "^16.2.4" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-environment-node/package.json b/packages/jest-environment-node/package.json index 6274deafec97..8aa87d6619a1 100644 --- a/packages/jest-environment-node/package.json +++ b/packages/jest-environment-node/package.json @@ -28,7 +28,7 @@ "@jest/test-utils": "^27.4.6" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-environment/package.json b/packages/jest-environment/package.json index 19332fa6d0b8..dffed4e96743 100644 --- a/packages/jest-environment/package.json +++ b/packages/jest-environment/package.json @@ -23,7 +23,7 @@ "jest-mock": "^27.4.6" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-fake-timers/package.json b/packages/jest-fake-timers/package.json index b39cb74395ed..8249008a650c 100644 --- a/packages/jest-fake-timers/package.json +++ b/packages/jest-fake-timers/package.json @@ -29,7 +29,7 @@ "jest-snapshot-serializer-raw": "^1.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-get-type/package.json b/packages/jest-get-type/package.json index c78e99d64e4e..4ffca7e50c15 100644 --- a/packages/jest-get-type/package.json +++ b/packages/jest-get-type/package.json @@ -8,7 +8,7 @@ "directory": "packages/jest-get-type" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "license": "MIT", "main": "./build/index.js", diff --git a/packages/jest-globals/package.json b/packages/jest-globals/package.json index 81f76b0a6e5e..a3158673230b 100644 --- a/packages/jest-globals/package.json +++ b/packages/jest-globals/package.json @@ -7,7 +7,7 @@ "directory": "packages/jest-globals" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "license": "MIT", "main": "./build/index.js", diff --git a/packages/jest-haste-map/package.json b/packages/jest-haste-map/package.json index 4d64dd7fdbc1..c7158509c46c 100644 --- a/packages/jest-haste-map/package.json +++ b/packages/jest-haste-map/package.json @@ -41,7 +41,7 @@ "fsevents": "^2.3.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-jasmine2/package.json b/packages/jest-jasmine2/package.json index da323e69af3f..bb3c348059eb 100644 --- a/packages/jest-jasmine2/package.json +++ b/packages/jest-jasmine2/package.json @@ -39,7 +39,7 @@ "@types/co": "^4.6.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-leak-detector/package.json b/packages/jest-leak-detector/package.json index a36e8ac94f87..a701ccbb7021 100644 --- a/packages/jest-leak-detector/package.json +++ b/packages/jest-leak-detector/package.json @@ -25,7 +25,7 @@ "weak-napi": "^2.0.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-matcher-utils/package.json b/packages/jest-matcher-utils/package.json index 8a37924f02de..c8c005014730 100644 --- a/packages/jest-matcher-utils/package.json +++ b/packages/jest-matcher-utils/package.json @@ -8,7 +8,7 @@ "directory": "packages/jest-matcher-utils" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "license": "MIT", "main": "./build/index.js", diff --git a/packages/jest-message-util/package.json b/packages/jest-message-util/package.json index e4dd21c13509..2cd3ec945dc3 100644 --- a/packages/jest-message-util/package.json +++ b/packages/jest-message-util/package.json @@ -7,7 +7,7 @@ "directory": "packages/jest-message-util" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "license": "MIT", "main": "./build/index.js", diff --git a/packages/jest-mock/package.json b/packages/jest-mock/package.json index 7e441f5522ff..110a9bea2feb 100644 --- a/packages/jest-mock/package.json +++ b/packages/jest-mock/package.json @@ -7,7 +7,7 @@ "directory": "packages/jest-mock" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "dependencies": { "@jest/types": "^27.4.2", diff --git a/packages/jest-phabricator/package.json b/packages/jest-phabricator/package.json index b30642fab039..cbdee2711a98 100644 --- a/packages/jest-phabricator/package.json +++ b/packages/jest-phabricator/package.json @@ -18,7 +18,7 @@ "@jest/test-result": "^27.4.6" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "license": "MIT", "main": "./build/index.js", diff --git a/packages/jest-regex-util/package.json b/packages/jest-regex-util/package.json index 135003bc79fa..a26e90d48c87 100644 --- a/packages/jest-regex-util/package.json +++ b/packages/jest-regex-util/package.json @@ -10,7 +10,7 @@ "@types/node": "*" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "license": "MIT", "main": "./build/index.js", diff --git a/packages/jest-repl/package.json b/packages/jest-repl/package.json index 0ef28473d388..5084a02b772c 100644 --- a/packages/jest-repl/package.json +++ b/packages/jest-repl/package.json @@ -40,7 +40,7 @@ "jest-runtime": "./bin/jest-runtime-cli.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-reporters/package.json b/packages/jest-reporters/package.json index 73c628f58e6c..dc597d68d05e 100644 --- a/packages/jest-reporters/package.json +++ b/packages/jest-reporters/package.json @@ -61,7 +61,7 @@ } }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "repository": { "type": "git", diff --git a/packages/jest-resolve-dependencies/package.json b/packages/jest-resolve-dependencies/package.json index 42ee2343783a..67ebdea1cceb 100644 --- a/packages/jest-resolve-dependencies/package.json +++ b/packages/jest-resolve-dependencies/package.json @@ -28,7 +28,7 @@ "jest-runtime": "^27.4.6" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-resolve/package.json b/packages/jest-resolve/package.json index 82e046421f35..a0ff945c1182 100644 --- a/packages/jest-resolve/package.json +++ b/packages/jest-resolve/package.json @@ -33,7 +33,7 @@ "@types/resolve": "^1.20.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-runner/package.json b/packages/jest-runner/package.json index 392d441e482d..0e308ad96202 100644 --- a/packages/jest-runner/package.json +++ b/packages/jest-runner/package.json @@ -47,7 +47,7 @@ "jest-jasmine2": "^27.4.6" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-runtime/package.json b/packages/jest-runtime/package.json index 1dbdc6137f55..fb0098658a12 100644 --- a/packages/jest-runtime/package.json +++ b/packages/jest-runtime/package.json @@ -49,7 +49,7 @@ "jest-snapshot-serializer-raw": "^1.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-runtime/src/__tests__/runtime_require_module.test.js b/packages/jest-runtime/src/__tests__/runtime_require_module.test.js index 8dd185c562ac..dafb5ca54334 100644 --- a/packages/jest-runtime/src/__tests__/runtime_require_module.test.js +++ b/packages/jest-runtime/src/__tests__/runtime_require_module.test.js @@ -372,47 +372,45 @@ describe('Runtime requireModule', () => { ).toThrowError(); }); - onNodeVersions('>=12.12.0', () => { - it('overrides module.createRequire', async () => { - const runtime = await createRuntime(__filename); - const exports = runtime.requireModule(runtime.__mockRootPath, 'module'); + it('overrides module.createRequire', async () => { + const runtime = await createRuntime(__filename); + const exports = runtime.requireModule(runtime.__mockRootPath, 'module'); - expect(exports.createRequire).not.toBe(createRequire); + expect(exports.createRequire).not.toBe(createRequire); - // createRequire with string - { - const customRequire = exports.createRequire(runtime.__mockRootPath); - expect(customRequire('./create_require_module').foo).toBe('foo'); - } + // createRequire with string + { + const customRequire = exports.createRequire(runtime.__mockRootPath); + expect(customRequire('./create_require_module').foo).toBe('foo'); + } - // createRequire with URL object - { - const customRequire = exports.createRequire( - pathToFileURL(runtime.__mockRootPath), - ); - expect(customRequire('./create_require_module').foo).toBe('foo'); - } + // createRequire with URL object + { + const customRequire = exports.createRequire( + pathToFileURL(runtime.__mockRootPath), + ); + expect(customRequire('./create_require_module').foo).toBe('foo'); + } - // createRequire with file URL string - { - const customRequire = exports.createRequire( - pathToFileURL(runtime.__mockRootPath).toString(), - ); - expect(customRequire('./create_require_module').foo).toBe('foo'); - } + // createRequire with file URL string + { + const customRequire = exports.createRequire( + pathToFileURL(runtime.__mockRootPath).toString(), + ); + expect(customRequire('./create_require_module').foo).toBe('foo'); + } - // createRequire with absolute module path - { - const customRequire = exports.createRequire(runtime.__mockRootPath); - expect(customRequire('./create_require_module').foo).toBe('foo'); - } + // createRequire with absolute module path + { + const customRequire = exports.createRequire(runtime.__mockRootPath); + expect(customRequire('./create_require_module').foo).toBe('foo'); + } - expect(exports.syncBuiltinESMExports).not.toThrow(); - expect(exports.builtinModules).toEqual(builtinModules); - }); + expect(exports.syncBuiltinESMExports).not.toThrow(); + expect(exports.builtinModules).toEqual(builtinModules); }); - onNodeVersions('>=12.12.0 <16.0.0', () => { + onNodeVersions('<16.0.0', () => { it('overrides module.createRequireFromPath', async () => { const runtime = await createRuntime(__filename); const exports = runtime.requireModule(runtime.__mockRootPath, 'module'); diff --git a/packages/jest-serializer/package.json b/packages/jest-serializer/package.json index c0d1911b410f..be1d80b7a13a 100644 --- a/packages/jest-serializer/package.json +++ b/packages/jest-serializer/package.json @@ -14,7 +14,7 @@ "graceful-fs": "^4.2.4" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "license": "MIT", "main": "./build/index.js", diff --git a/packages/jest-snapshot/package.json b/packages/jest-snapshot/package.json index d17a995e8002..94ef2101a60a 100644 --- a/packages/jest-snapshot/package.json +++ b/packages/jest-snapshot/package.json @@ -52,7 +52,7 @@ "prettier": "^2.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-source-map/package.json b/packages/jest-source-map/package.json index f86b7cb16cb4..90ac6c7d0d11 100644 --- a/packages/jest-source-map/package.json +++ b/packages/jest-source-map/package.json @@ -25,7 +25,7 @@ "@types/graceful-fs": "^4.1.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-test-result/package.json b/packages/jest-test-result/package.json index 5082e6dcdf58..7e46e81dad0d 100644 --- a/packages/jest-test-result/package.json +++ b/packages/jest-test-result/package.json @@ -23,7 +23,7 @@ "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-test-sequencer/package.json b/packages/jest-test-sequencer/package.json index 2f80e55e3928..598f9978e789 100644 --- a/packages/jest-test-sequencer/package.json +++ b/packages/jest-test-sequencer/package.json @@ -26,7 +26,7 @@ "@types/graceful-fs": "^4.1.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-transform/package.json b/packages/jest-transform/package.json index 7ad087e661c6..4d40e142419d 100644 --- a/packages/jest-transform/package.json +++ b/packages/jest-transform/package.json @@ -45,7 +45,7 @@ "jest-snapshot-serializer-raw": "^1.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-types/package.json b/packages/jest-types/package.json index 69877cdad605..8e3c66b43ab7 100644 --- a/packages/jest-types/package.json +++ b/packages/jest-types/package.json @@ -7,7 +7,7 @@ "directory": "packages/jest-types" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "license": "MIT", "main": "./build/index.js", diff --git a/packages/jest-util/package.json b/packages/jest-util/package.json index 547d7b7a3830..03dcb9ddf0f5 100644 --- a/packages/jest-util/package.json +++ b/packages/jest-util/package.json @@ -30,7 +30,7 @@ "@types/picomatch": "^2.2.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-validate/package.json b/packages/jest-validate/package.json index 2cc00d8eb8b6..3a36b5fadee5 100644 --- a/packages/jest-validate/package.json +++ b/packages/jest-validate/package.json @@ -28,7 +28,7 @@ "@types/yargs": "^16.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-watcher/package.json b/packages/jest-watcher/package.json index 38ec95b49278..3ab1a8c642ea 100644 --- a/packages/jest-watcher/package.json +++ b/packages/jest-watcher/package.json @@ -29,7 +29,7 @@ "url": "https://github.com/facebook/jest/issues" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "homepage": "https://jestjs.io/", "license": "MIT", diff --git a/packages/jest-worker/package.json b/packages/jest-worker/package.json index 1494ac072b98..54fcffd5fa2b 100644 --- a/packages/jest-worker/package.json +++ b/packages/jest-worker/package.json @@ -29,7 +29,7 @@ "worker-farm": "^1.6.0" }, "engines": { - "node": ">= 10.13.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/jest-worker/src/workers/NodeThreadsWorker.ts b/packages/jest-worker/src/workers/NodeThreadsWorker.ts index 136b648c33de..ab125664848b 100644 --- a/packages/jest-worker/src/workers/NodeThreadsWorker.ts +++ b/packages/jest-worker/src/workers/NodeThreadsWorker.ts @@ -61,7 +61,6 @@ export default class ExperimentalWorker implements WorkerInterface { initialize(): void { this._worker = new Worker(path.resolve(__dirname, './threadChild.js'), { eval: false, - // @ts-expect-error: added in newer versions resourceLimits: this._options.resourceLimits, stderr: true, stdout: true, diff --git a/packages/jest/package.json b/packages/jest/package.json index 4f6c5d071ea5..87387859dfca 100644 --- a/packages/jest/package.json +++ b/packages/jest/package.json @@ -27,7 +27,7 @@ }, "bin": "./bin/jest.js", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "repository": { "type": "git", diff --git a/packages/pretty-format/package.json b/packages/pretty-format/package.json index 0310e598a68e..708216a4539a 100644 --- a/packages/pretty-format/package.json +++ b/packages/pretty-format/package.json @@ -34,7 +34,7 @@ "react-test-renderer": "*" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index efd8e43371a9..9cb8892d7c9f 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -24,6 +24,6 @@ "@types/semver": "^7.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.13.0 || >=17.0.0" } } diff --git a/scripts/buildUtils.js b/scripts/buildUtils.js index d2ba6ba08fc6..63df5f3c3c5f 100644 --- a/scripts/buildUtils.js +++ b/scripts/buildUtils.js @@ -35,8 +35,7 @@ module.exports.getPackages = function getPackages() { assert.strictEqual( pkg.engines.node, - // TODO: remove special casing for Jest 28 - pkg.name === 'jest-worker' ? '>= 10.13.0' : nodeEngineRequirement, + nodeEngineRequirement, `Engine requirement in ${pkg.name} should match root`, ); diff --git a/tsconfig.json b/tsconfig.json index 1064bd907307..62787f1bcf78 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,6 @@ { - "extends": "@tsconfig/node10/tsconfig.json", + "extends": "@tsconfig/node12/tsconfig.json", "compilerOptions": { - // Object.fromEntries - "lib": ["es2019.object"], "declaration": true, "composite": true, "emitDeclarationOnly": true, diff --git a/yarn.lock b/yarn.lock index 73eef1529ce9..e434626759dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2591,13 +2591,13 @@ __metadata: "@crowdin/cli": ^3.5.2 "@jest/globals": "workspace:*" "@jest/test-utils": "workspace:*" - "@tsconfig/node10": ^1.0.8 + "@tsconfig/node12": ^1.0.9 "@types/babel__core": ^7.0.0 "@types/babel__generator": ^7.0.0 "@types/babel__template": ^7.0.0 "@types/dedent": 0.7.0 "@types/jest": ^26.0.15 - "@types/node": ~10.14.0 + "@types/node": ~12.12.0 "@types/which": ^2.0.0 "@typescript-eslint/eslint-plugin": ^4.1.0 "@typescript-eslint/parser": ^4.1.0 @@ -4432,10 +4432,10 @@ __metadata: languageName: node linkType: hard -"@tsconfig/node10@npm:^1.0.8": - version: 1.0.8 - resolution: "@tsconfig/node10@npm:1.0.8" - checksum: 0336493b89fb7c06409a1247a3fb00fac2755f21f3f8ae4b9dd2457859abfc5e8ca42b6d9ca5a279fe81bc70fe1f3450eef61e5dd5a63a7b4a6946ff31874816 +"@tsconfig/node12@npm:^1.0.9": + version: 1.0.9 + resolution: "@tsconfig/node12@npm:1.0.9" + checksum: 5532bfb5df47ed3a507da533c731a2fb80ee2e886edadbf20e664dcd3172d5c159577a281d15733b8d0c30bfa4e6b48496bef0704192c085520bc76bb9938068 languageName: node linkType: hard @@ -4886,10 +4886,10 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:~10.14.0": - version: 10.14.22 - resolution: "@types/node@npm:10.14.22" - checksum: 392965766fc7f221169d62e4dafbfc875ba172ce610ac48fec26eaf572386913bd2c5d2e036bb747bb49923f1ade9eed2b2d09a391cbf5fbaaa864a74a4dad60 +"@types/node@npm:*, @types/node@npm:~12.12.0": + version: 12.12.70 + resolution: "@types/node@npm:12.12.70" + checksum: ef0ea535b8301d7d8f89d848bb7d5028bbd702d8d96b812100cba71829b460fc0d00cbbf296909254c49d0efe5a57dd37d40ba3abaca902dc170034e90f651a2 languageName: node linkType: hard