From 8f406f397eff7be4701fbee07c2cdcc6eca539c1 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Wed, 29 Sep 2021 16:05:29 +0200 Subject: [PATCH 01/17] chore: update lockfile after release --- yarn.lock | 482 +++++++++++++++++++++++++++--------------------------- 1 file changed, 241 insertions(+), 241 deletions(-) diff --git a/yarn.lock b/yarn.lock index 34785afe8bc8..6c85c0e5e11d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2443,31 +2443,31 @@ __metadata: languageName: node linkType: hard -"@jest/console@^27.2.3, @jest/console@workspace:packages/jest-console": +"@jest/console@^27.2.4, @jest/console@workspace:packages/jest-console": version: 0.0.0-use.local resolution: "@jest/console@workspace:packages/jest-console" dependencies: - "@jest/test-utils": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/test-utils": ^27.2.4 + "@jest/types": ^27.2.4 "@types/node": "*" chalk: ^4.0.0 - jest-message-util: ^27.2.3 - jest-util: ^27.2.3 + jest-message-util: ^27.2.4 + jest-util: ^27.2.4 slash: ^3.0.0 languageName: unknown linkType: soft -"@jest/core@^27.2.3, @jest/core@workspace:packages/jest-core": +"@jest/core@^27.2.4, @jest/core@workspace:packages/jest-core": version: 0.0.0-use.local resolution: "@jest/core@workspace:packages/jest-core" dependencies: - "@jest/console": ^27.2.3 - "@jest/reporters": ^27.2.3 - "@jest/test-result": ^27.2.3 - "@jest/test-sequencer": ^27.2.3 - "@jest/test-utils": ^27.2.3 - "@jest/transform": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/console": ^27.2.4 + "@jest/reporters": ^27.2.4 + "@jest/test-result": ^27.2.4 + "@jest/test-sequencer": ^27.2.4 + "@jest/test-utils": ^27.2.4 + "@jest/transform": ^27.2.4 + "@jest/types": ^27.2.4 "@types/exit": ^0.1.30 "@types/graceful-fs": ^4.1.2 "@types/micromatch": ^4.0.1 @@ -2478,20 +2478,20 @@ __metadata: emittery: ^0.8.1 exit: ^0.1.2 graceful-fs: ^4.2.4 - jest-changed-files: ^27.2.3 - jest-config: ^27.2.3 - jest-haste-map: ^27.2.3 - jest-message-util: ^27.2.3 + jest-changed-files: ^27.2.4 + jest-config: ^27.2.4 + jest-haste-map: ^27.2.4 + jest-message-util: ^27.2.4 jest-regex-util: ^27.0.6 - jest-resolve: ^27.2.3 - jest-resolve-dependencies: ^27.2.3 - jest-runner: ^27.2.3 - jest-runtime: ^27.2.3 - jest-snapshot: ^27.2.3 + jest-resolve: ^27.2.4 + jest-resolve-dependencies: ^27.2.4 + jest-runner: ^27.2.4 + jest-runtime: ^27.2.4 + jest-snapshot: ^27.2.4 jest-snapshot-serializer-raw: ^1.1.0 - jest-util: ^27.2.3 - jest-validate: ^27.2.3 - jest-watcher: ^27.2.3 + jest-util: ^27.2.4 + jest-validate: ^27.2.4 + jest-watcher: ^27.2.4 micromatch: ^4.0.4 rimraf: ^3.0.0 slash: ^3.0.0 @@ -2508,45 +2508,45 @@ __metadata: version: 0.0.0-use.local resolution: "@jest/create-cache-key-function@workspace:packages/jest-create-cache-key-function" dependencies: - "@jest/types": ^27.2.3 + "@jest/types": ^27.2.4 "@types/node": "*" - jest-util: ^27.2.3 + jest-util: ^27.2.4 languageName: unknown linkType: soft -"@jest/environment@^27.2.3, @jest/environment@workspace:packages/jest-environment": +"@jest/environment@^27.2.4, @jest/environment@workspace:packages/jest-environment": version: 0.0.0-use.local resolution: "@jest/environment@workspace:packages/jest-environment" dependencies: - "@jest/fake-timers": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/fake-timers": ^27.2.4 + "@jest/types": ^27.2.4 "@types/node": "*" - jest-mock: ^27.2.3 + jest-mock: ^27.2.4 languageName: unknown linkType: soft -"@jest/fake-timers@^27.2.3, @jest/fake-timers@workspace:packages/jest-fake-timers": +"@jest/fake-timers@^27.2.4, @jest/fake-timers@workspace:packages/jest-fake-timers": version: 0.0.0-use.local resolution: "@jest/fake-timers@workspace:packages/jest-fake-timers" dependencies: - "@jest/types": ^27.2.3 + "@jest/types": ^27.2.4 "@sinonjs/fake-timers": ^8.0.1 "@types/node": "*" "@types/sinonjs__fake-timers": ^6.0.1 - jest-message-util: ^27.2.3 - jest-mock: ^27.2.3 + jest-message-util: ^27.2.4 + jest-mock: ^27.2.4 jest-snapshot-serializer-raw: ^1.1.0 - jest-util: ^27.2.3 + jest-util: ^27.2.4 languageName: unknown linkType: soft -"@jest/globals@^27.2.3, @jest/globals@workspace:*, @jest/globals@workspace:packages/jest-globals": +"@jest/globals@^27.2.4, @jest/globals@workspace:*, @jest/globals@workspace:packages/jest-globals": version: 0.0.0-use.local resolution: "@jest/globals@workspace:packages/jest-globals" dependencies: - "@jest/environment": ^27.2.3 - "@jest/types": ^27.2.3 - expect: ^27.2.3 + "@jest/environment": ^27.2.4 + "@jest/types": ^27.2.4 + expect: ^27.2.4 languageName: unknown linkType: soft @@ -2636,16 +2636,16 @@ __metadata: languageName: unknown linkType: soft -"@jest/reporters@^27.2.3, @jest/reporters@workspace:packages/jest-reporters": +"@jest/reporters@^27.2.4, @jest/reporters@workspace:packages/jest-reporters": version: 0.0.0-use.local resolution: "@jest/reporters@workspace:packages/jest-reporters" dependencies: "@bcoe/v8-coverage": ^0.2.3 - "@jest/console": ^27.2.3 - "@jest/test-result": ^27.2.3 - "@jest/test-utils": ^27.2.3 - "@jest/transform": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/console": ^27.2.4 + "@jest/test-result": ^27.2.4 + "@jest/test-utils": ^27.2.4 + "@jest/transform": ^27.2.4 + "@jest/types": ^27.2.4 "@types/exit": ^0.1.30 "@types/glob": ^7.1.1 "@types/graceful-fs": ^4.1.3 @@ -2665,10 +2665,10 @@ __metadata: istanbul-lib-report: ^3.0.0 istanbul-lib-source-maps: ^4.0.0 istanbul-reports: ^3.0.2 - jest-haste-map: ^27.2.3 - jest-resolve: ^27.2.3 - jest-util: ^27.2.3 - jest-worker: ^27.2.3 + jest-haste-map: ^27.2.4 + jest-resolve: ^27.2.4 + jest-util: ^27.2.4 + jest-worker: ^27.2.4 mock-fs: ^4.4.1 slash: ^3.0.0 source-map: ^0.6.0 @@ -2695,51 +2695,51 @@ __metadata: languageName: unknown linkType: soft -"@jest/test-result@^27.2.3, @jest/test-result@workspace:packages/jest-test-result": +"@jest/test-result@^27.2.4, @jest/test-result@workspace:packages/jest-test-result": version: 0.0.0-use.local resolution: "@jest/test-result@workspace:packages/jest-test-result" dependencies: - "@jest/console": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/console": ^27.2.4 + "@jest/types": ^27.2.4 "@types/istanbul-lib-coverage": ^2.0.0 collect-v8-coverage: ^1.0.0 languageName: unknown linkType: soft -"@jest/test-sequencer@^27.2.3, @jest/test-sequencer@workspace:packages/jest-test-sequencer": +"@jest/test-sequencer@^27.2.4, @jest/test-sequencer@workspace:packages/jest-test-sequencer": version: 0.0.0-use.local resolution: "@jest/test-sequencer@workspace:packages/jest-test-sequencer" dependencies: - "@jest/test-result": ^27.2.3 + "@jest/test-result": ^27.2.4 "@types/graceful-fs": ^4.1.3 graceful-fs: ^4.2.4 - jest-haste-map: ^27.2.3 - jest-runtime: ^27.2.3 + jest-haste-map: ^27.2.4 + jest-runtime: ^27.2.4 languageName: unknown linkType: soft -"@jest/test-utils@^27.2.3, @jest/test-utils@workspace:*, @jest/test-utils@workspace:packages/test-utils": +"@jest/test-utils@^27.2.4, @jest/test-utils@workspace:*, @jest/test-utils@workspace:packages/test-utils": version: 0.0.0-use.local resolution: "@jest/test-utils@workspace:packages/test-utils" dependencies: - "@jest/types": ^27.2.3 + "@jest/types": ^27.2.4 "@types/jest": "*" "@types/node": "*" "@types/semver": ^7.1.0 ansi-regex: ^5.0.1 ansi-styles: ^5.0.0 - pretty-format: ^27.2.3 + pretty-format: ^27.2.4 semver: ^7.3.2 languageName: unknown linkType: soft -"@jest/transform@^27.2.3, @jest/transform@workspace:packages/jest-transform": +"@jest/transform@^27.2.4, @jest/transform@workspace:packages/jest-transform": version: 0.0.0-use.local resolution: "@jest/transform@workspace:packages/jest-transform" dependencies: "@babel/core": ^7.1.0 - "@jest/test-utils": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/test-utils": ^27.2.4 + "@jest/types": ^27.2.4 "@types/babel__core": ^7.1.0 "@types/convert-source-map": ^1.5.1 "@types/fast-json-stable-stringify": ^2.0.0 @@ -2752,10 +2752,10 @@ __metadata: dedent: ^0.7.0 fast-json-stable-stringify: ^2.0.0 graceful-fs: ^4.2.4 - jest-haste-map: ^27.2.3 + jest-haste-map: ^27.2.4 jest-regex-util: ^27.0.6 jest-snapshot-serializer-raw: ^1.1.0 - jest-util: ^27.2.3 + jest-util: ^27.2.4 micromatch: ^4.0.4 pirates: ^4.0.1 slash: ^3.0.0 @@ -2764,7 +2764,7 @@ __metadata: languageName: unknown linkType: soft -"@jest/types@^27.2.3, @jest/types@workspace:packages/jest-types": +"@jest/types@^27.2.4, @jest/types@workspace:packages/jest-types": version: 0.0.0-use.local resolution: "@jest/types@workspace:packages/jest-types" dependencies: @@ -6081,9 +6081,9 @@ __metadata: resolution: "babel-jest@workspace:packages/babel-jest" dependencies: "@babel/core": ^7.1.0 - "@jest/test-utils": ^27.2.3 - "@jest/transform": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/test-utils": ^27.2.4 + "@jest/transform": ^27.2.4 + "@jest/types": ^27.2.4 "@types/babel__core": ^7.1.14 "@types/graceful-fs": ^4.1.3 babel-plugin-istanbul: ^6.0.0 @@ -9790,19 +9790,19 @@ __metadata: languageName: node linkType: hard -"expect@^27.2.3, expect@workspace:packages/expect": +"expect@^27.2.4, expect@workspace:packages/expect": version: 0.0.0-use.local resolution: "expect@workspace:packages/expect" dependencies: - "@jest/test-utils": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/test-utils": ^27.2.4 + "@jest/types": ^27.2.4 ansi-styles: ^5.0.0 chalk: ^4.0.0 fast-check: ^2.0.0 immutable: ^4.0.0-rc.12 jest-get-type: ^27.0.6 - jest-matcher-utils: ^27.2.3 - jest-message-util: ^27.2.3 + jest-matcher-utils: ^27.2.4 + jest-message-util: ^27.2.4 jest-regex-util: ^27.0.6 languageName: unknown linkType: soft @@ -12569,26 +12569,26 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jest-changed-files@^27.2.3, jest-changed-files@workspace:*, jest-changed-files@workspace:packages/jest-changed-files": +"jest-changed-files@^27.2.4, jest-changed-files@workspace:*, jest-changed-files@workspace:packages/jest-changed-files": version: 0.0.0-use.local resolution: "jest-changed-files@workspace:packages/jest-changed-files" dependencies: - "@jest/types": ^27.2.3 + "@jest/types": ^27.2.4 execa: ^5.0.0 throat: ^6.0.1 languageName: unknown linkType: soft -"jest-circus@^27.2.3, jest-circus@workspace:packages/jest-circus": +"jest-circus@^27.2.4, jest-circus@workspace:packages/jest-circus": version: 0.0.0-use.local resolution: "jest-circus@workspace:packages/jest-circus" dependencies: "@babel/core": ^7.1.0 "@babel/register": ^7.0.0 - "@jest/environment": ^27.2.3 - "@jest/test-result": ^27.2.3 - "@jest/test-utils": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/environment": ^27.2.4 + "@jest/test-result": ^27.2.4 + "@jest/test-utils": ^27.2.4 + "@jest/types": ^27.2.4 "@types/co": ^4.6.0 "@types/dedent": ^0.7.0 "@types/graceful-fs": ^4.1.3 @@ -12598,31 +12598,31 @@ fsevents@^1.2.7: co: ^4.6.0 dedent: ^0.7.0 execa: ^5.0.0 - expect: ^27.2.3 + expect: ^27.2.4 graceful-fs: ^4.2.4 is-generator-fn: ^2.0.0 - jest-each: ^27.2.3 - jest-matcher-utils: ^27.2.3 - jest-message-util: ^27.2.3 - jest-runtime: ^27.2.3 - jest-snapshot: ^27.2.3 + jest-each: ^27.2.4 + jest-matcher-utils: ^27.2.4 + jest-message-util: ^27.2.4 + jest-runtime: ^27.2.4 + jest-snapshot: ^27.2.4 jest-snapshot-serializer-raw: ^1.1.0 - jest-util: ^27.2.3 - pretty-format: ^27.2.3 + jest-util: ^27.2.4 + pretty-format: ^27.2.4 slash: ^3.0.0 stack-utils: ^2.0.3 throat: ^6.0.1 languageName: unknown linkType: soft -"jest-cli@^27.2.3, jest-cli@workspace:packages/jest-cli": +"jest-cli@^27.2.4, jest-cli@workspace:packages/jest-cli": version: 0.0.0-use.local resolution: "jest-cli@workspace:packages/jest-cli" dependencies: - "@jest/core": ^27.2.3 - "@jest/test-result": ^27.2.3 - "@jest/test-utils": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/core": ^27.2.4 + "@jest/test-result": ^27.2.4 + "@jest/test-utils": ^27.2.4 + "@jest/types": ^27.2.4 "@types/exit": ^0.1.30 "@types/graceful-fs": ^4.1.3 "@types/prompts": ^2.0.1 @@ -12631,9 +12631,9 @@ fsevents@^1.2.7: exit: ^0.1.2 graceful-fs: ^4.2.4 import-local: ^3.0.2 - jest-config: ^27.2.3 - jest-util: ^27.2.3 - jest-validate: ^27.2.3 + jest-config: ^27.2.4 + jest-util: ^27.2.4 + jest-validate: ^27.2.4 prompts: ^2.0.1 yargs: ^16.2.0 peerDependencies: @@ -12646,37 +12646,37 @@ fsevents@^1.2.7: languageName: unknown linkType: soft -"jest-config@^27.2.3, jest-config@workspace:packages/jest-config": +"jest-config@^27.2.4, jest-config@workspace:packages/jest-config": version: 0.0.0-use.local resolution: "jest-config@workspace:packages/jest-config" dependencies: "@babel/core": ^7.1.0 - "@jest/test-sequencer": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/test-sequencer": ^27.2.4 + "@jest/types": ^27.2.4 "@types/babel__core": ^7.0.4 "@types/glob": ^7.1.1 "@types/graceful-fs": ^4.1.3 "@types/is-ci": ^3.0.0 "@types/micromatch": ^4.0.1 - babel-jest: ^27.2.3 + babel-jest: ^27.2.4 chalk: ^4.0.0 deepmerge: ^4.2.2 glob: ^7.1.1 graceful-fs: ^4.2.4 is-ci: ^3.0.0 - jest-circus: ^27.2.3 - jest-environment-jsdom: ^27.2.3 - jest-environment-node: ^27.2.3 + jest-circus: ^27.2.4 + jest-environment-jsdom: ^27.2.4 + jest-environment-node: ^27.2.4 jest-get-type: ^27.0.6 - jest-jasmine2: ^27.2.3 + jest-jasmine2: ^27.2.4 jest-regex-util: ^27.0.6 - jest-resolve: ^27.2.3 - jest-runner: ^27.2.3 + jest-resolve: ^27.2.4 + jest-runner: ^27.2.4 jest-snapshot-serializer-raw: ^1.1.0 - jest-util: ^27.2.3 - jest-validate: ^27.2.3 + jest-util: ^27.2.4 + jest-validate: ^27.2.4 micromatch: ^4.0.4 - pretty-format: ^27.2.3 + pretty-format: ^27.2.4 semver: ^7.3.5 strip-ansi: ^6.0.0 ts-node: ^9.0.0 @@ -12689,15 +12689,15 @@ fsevents@^1.2.7: languageName: unknown linkType: soft -"jest-diff@^27.2.3, jest-diff@workspace:packages/jest-diff": +"jest-diff@^27.2.4, jest-diff@workspace:packages/jest-diff": version: 0.0.0-use.local resolution: "jest-diff@workspace:packages/jest-diff" dependencies: - "@jest/test-utils": ^27.2.3 + "@jest/test-utils": ^27.2.4 chalk: ^4.0.0 diff-sequences: ^27.0.6 jest-get-type: ^27.0.6 - pretty-format: ^27.2.3 + pretty-format: ^27.2.4 strip-ansi: ^6.0.0 languageName: unknown linkType: soft @@ -12732,30 +12732,30 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jest-each@^27.2.3, jest-each@workspace:packages/jest-each": +"jest-each@^27.2.4, jest-each@workspace:packages/jest-each": version: 0.0.0-use.local resolution: "jest-each@workspace:packages/jest-each" dependencies: - "@jest/types": ^27.2.3 + "@jest/types": ^27.2.4 chalk: ^4.0.0 jest-get-type: ^27.0.6 - jest-util: ^27.2.3 - pretty-format: ^27.2.3 + jest-util: ^27.2.4 + pretty-format: ^27.2.4 languageName: unknown linkType: soft -"jest-environment-jsdom@^27.2.3, jest-environment-jsdom@workspace:packages/jest-environment-jsdom": +"jest-environment-jsdom@^27.2.4, jest-environment-jsdom@workspace:packages/jest-environment-jsdom": version: 0.0.0-use.local resolution: "jest-environment-jsdom@workspace:packages/jest-environment-jsdom" dependencies: - "@jest/environment": ^27.2.3 - "@jest/fake-timers": ^27.2.3 - "@jest/test-utils": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/environment": ^27.2.4 + "@jest/fake-timers": ^27.2.4 + "@jest/test-utils": ^27.2.4 + "@jest/types": ^27.2.4 "@types/jsdom": ^16.2.4 "@types/node": "*" - jest-mock: ^27.2.3 - jest-util: ^27.2.3 + jest-mock: ^27.2.4 + jest-util: ^27.2.4 jsdom: ^16.6.0 languageName: unknown linkType: soft @@ -12764,13 +12764,13 @@ fsevents@^1.2.7: version: 0.0.0-use.local resolution: "jest-environment-node@workspace:packages/jest-environment-node" dependencies: - "@jest/environment": ^27.2.3 - "@jest/fake-timers": ^27.2.3 - "@jest/test-utils": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/environment": ^27.2.4 + "@jest/fake-timers": ^27.2.4 + "@jest/test-utils": ^27.2.4 + "@jest/types": ^27.2.4 "@types/node": "*" - jest-mock: ^27.2.3 - jest-util: ^27.2.3 + jest-mock: ^27.2.4 + jest-util: ^27.2.4 languageName: unknown linkType: soft @@ -12794,12 +12794,12 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jest-haste-map@^27.2.3, jest-haste-map@workspace:packages/jest-haste-map": +"jest-haste-map@^27.2.4, jest-haste-map@workspace:packages/jest-haste-map": version: 0.0.0-use.local resolution: "jest-haste-map@workspace:packages/jest-haste-map" dependencies: - "@jest/test-utils": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/test-utils": ^27.2.4 + "@jest/types": ^27.2.4 "@types/fb-watchman": ^2.0.0 "@types/graceful-fs": ^4.1.2 "@types/micromatch": ^4.0.1 @@ -12811,8 +12811,8 @@ fsevents@^1.2.7: jest-regex-util: ^27.0.6 jest-serializer: ^27.0.6 jest-snapshot-serializer-raw: ^1.1.0 - jest-util: ^27.2.3 - jest-worker: ^27.2.3 + jest-util: ^27.2.4 + jest-worker: ^27.2.4 micromatch: ^4.0.4 slash: ^3.0.0 walker: ^1.0.7 @@ -12847,29 +12847,29 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jest-jasmine2@^27.2.3, jest-jasmine2@workspace:packages/jest-jasmine2": +"jest-jasmine2@^27.2.4, jest-jasmine2@workspace:packages/jest-jasmine2": version: 0.0.0-use.local resolution: "jest-jasmine2@workspace:packages/jest-jasmine2" dependencies: "@babel/traverse": ^7.1.0 - "@jest/environment": ^27.2.3 + "@jest/environment": ^27.2.4 "@jest/source-map": ^27.0.6 - "@jest/test-result": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/test-result": ^27.2.4 + "@jest/types": ^27.2.4 "@types/babel__traverse": ^7.0.4 "@types/co": ^4.6.2 "@types/node": "*" chalk: ^4.0.0 co: ^4.6.0 - expect: ^27.2.3 + expect: ^27.2.4 is-generator-fn: ^2.0.0 - jest-each: ^27.2.3 - jest-matcher-utils: ^27.2.3 - jest-message-util: ^27.2.3 - jest-runtime: ^27.2.3 - jest-snapshot: ^27.2.3 - jest-util: ^27.2.3 - pretty-format: ^27.2.3 + jest-each: ^27.2.4 + jest-matcher-utils: ^27.2.4 + jest-message-util: ^27.2.4 + jest-runtime: ^27.2.4 + jest-snapshot: ^27.2.4 + jest-util: ^27.2.4 + pretty-format: ^27.2.4 throat: ^6.0.1 languageName: unknown linkType: soft @@ -12886,36 +12886,36 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jest-leak-detector@^27.2.3, jest-leak-detector@workspace:packages/jest-leak-detector": +"jest-leak-detector@^27.2.4, jest-leak-detector@workspace:packages/jest-leak-detector": version: 0.0.0-use.local resolution: "jest-leak-detector@workspace:packages/jest-leak-detector" dependencies: "@types/weak-napi": ^2.0.0 jest-get-type: ^27.0.6 - pretty-format: ^27.2.3 + pretty-format: ^27.2.4 weak-napi: ^2.0.1 languageName: unknown linkType: soft -"jest-matcher-utils@^27.2.3, jest-matcher-utils@workspace:packages/jest-matcher-utils": +"jest-matcher-utils@^27.2.4, jest-matcher-utils@workspace:packages/jest-matcher-utils": version: 0.0.0-use.local resolution: "jest-matcher-utils@workspace:packages/jest-matcher-utils" dependencies: - "@jest/test-utils": ^27.2.3 + "@jest/test-utils": ^27.2.4 "@types/node": "*" chalk: ^4.0.0 - jest-diff: ^27.2.3 + jest-diff: ^27.2.4 jest-get-type: ^27.0.6 - pretty-format: ^27.2.3 + pretty-format: ^27.2.4 languageName: unknown linkType: soft -"jest-message-util@^27.2.3, jest-message-util@workspace:packages/jest-message-util": +"jest-message-util@^27.2.4, jest-message-util@workspace:packages/jest-message-util": version: 0.0.0-use.local resolution: "jest-message-util@workspace:packages/jest-message-util" dependencies: "@babel/code-frame": ^7.12.13 - "@jest/types": ^27.2.3 + "@jest/types": ^27.2.4 "@types/babel__code-frame": ^7.0.0 "@types/graceful-fs": ^4.1.3 "@types/micromatch": ^4.0.1 @@ -12923,17 +12923,17 @@ fsevents@^1.2.7: chalk: ^4.0.0 graceful-fs: ^4.2.4 micromatch: ^4.0.4 - pretty-format: ^27.2.3 + pretty-format: ^27.2.4 slash: ^3.0.0 stack-utils: ^2.0.3 languageName: unknown linkType: soft -"jest-mock@^27.2.3, jest-mock@workspace:*, jest-mock@workspace:packages/jest-mock": +"jest-mock@^27.2.4, jest-mock@workspace:*, jest-mock@workspace:packages/jest-mock": version: 0.0.0-use.local resolution: "jest-mock@workspace:packages/jest-mock" dependencies: - "@jest/types": ^27.2.3 + "@jest/types": ^27.2.4 "@types/node": "*" languageName: unknown linkType: soft @@ -12942,7 +12942,7 @@ fsevents@^1.2.7: version: 0.0.0-use.local resolution: "jest-phabricator@workspace:packages/jest-phabricator" dependencies: - "@jest/test-result": ^27.2.3 + "@jest/test-result": ^27.2.4 languageName: unknown linkType: soft @@ -12977,18 +12977,18 @@ fsevents@^1.2.7: version: 0.0.0-use.local resolution: "jest-repl@workspace:packages/jest-repl" dependencies: - "@jest/console": ^27.2.3 - "@jest/environment": ^27.2.3 - "@jest/test-utils": ^27.2.3 - "@jest/transform": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/console": ^27.2.4 + "@jest/environment": ^27.2.4 + "@jest/test-utils": ^27.2.4 + "@jest/transform": ^27.2.4 + "@jest/types": ^27.2.4 "@types/yargs": ^16.0.0 chalk: ^4.0.0 execa: ^5.0.0 - jest-config: ^27.2.3 - jest-runtime: ^27.2.3 - jest-util: ^27.2.3 - jest-validate: ^27.2.3 + jest-config: ^27.2.4 + jest-runtime: ^27.2.4 + jest-util: ^27.2.4 + jest-validate: ^27.2.4 repl: ^0.1.3 yargs: ^16.2.0 bin: @@ -12997,34 +12997,34 @@ fsevents@^1.2.7: languageName: unknown linkType: soft -"jest-resolve-dependencies@^27.2.3, jest-resolve-dependencies@workspace:packages/jest-resolve-dependencies": +"jest-resolve-dependencies@^27.2.4, jest-resolve-dependencies@workspace:packages/jest-resolve-dependencies": version: 0.0.0-use.local resolution: "jest-resolve-dependencies@workspace:packages/jest-resolve-dependencies" dependencies: - "@jest/test-utils": ^27.2.3 - "@jest/types": ^27.2.3 - jest-haste-map: ^27.2.3 + "@jest/test-utils": ^27.2.4 + "@jest/types": ^27.2.4 + jest-haste-map: ^27.2.4 jest-regex-util: ^27.0.6 - jest-resolve: ^27.2.3 - jest-runtime: ^27.2.3 - jest-snapshot: ^27.2.3 + jest-resolve: ^27.2.4 + jest-runtime: ^27.2.4 + jest-snapshot: ^27.2.4 languageName: unknown linkType: soft -"jest-resolve@^27.2.3, jest-resolve@workspace:packages/jest-resolve": +"jest-resolve@^27.2.4, jest-resolve@workspace:packages/jest-resolve": version: 0.0.0-use.local resolution: "jest-resolve@workspace:packages/jest-resolve" dependencies: - "@jest/types": ^27.2.3 + "@jest/types": ^27.2.4 "@types/graceful-fs": ^4.1.3 "@types/resolve": ^1.20.0 chalk: ^4.0.0 escalade: ^3.1.1 graceful-fs: ^4.2.4 - jest-haste-map: ^27.2.3 + jest-haste-map: ^27.2.4 jest-pnp-resolver: ^1.2.2 - jest-util: ^27.2.3 - jest-validate: ^27.2.3 + jest-util: ^27.2.4 + jest-validate: ^27.2.4 resolve: ^1.20.0 slash: ^3.0.0 languageName: unknown @@ -13041,15 +13041,15 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jest-runner@^27.2.3, jest-runner@workspace:packages/jest-runner": +"jest-runner@^27.2.4, jest-runner@workspace:packages/jest-runner": version: 0.0.0-use.local resolution: "jest-runner@workspace:packages/jest-runner" dependencies: - "@jest/console": ^27.2.3 - "@jest/environment": ^27.2.3 - "@jest/test-result": ^27.2.3 - "@jest/transform": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/console": ^27.2.4 + "@jest/environment": ^27.2.4 + "@jest/test-result": ^27.2.4 + "@jest/transform": ^27.2.4 + "@jest/types": ^27.2.4 "@types/exit": ^0.1.30 "@types/graceful-fs": ^4.1.2 "@types/node": "*" @@ -13059,34 +13059,34 @@ fsevents@^1.2.7: exit: ^0.1.2 graceful-fs: ^4.2.4 jest-docblock: ^27.0.6 - jest-environment-jsdom: ^27.2.3 - jest-environment-node: ^27.2.3 - jest-haste-map: ^27.2.3 - jest-jasmine2: ^27.2.3 - jest-leak-detector: ^27.2.3 - jest-message-util: ^27.2.3 - jest-resolve: ^27.2.3 - jest-runtime: ^27.2.3 - jest-util: ^27.2.3 - jest-worker: ^27.2.3 + jest-environment-jsdom: ^27.2.4 + jest-environment-node: ^27.2.4 + jest-haste-map: ^27.2.4 + jest-jasmine2: ^27.2.4 + jest-leak-detector: ^27.2.4 + jest-message-util: ^27.2.4 + jest-resolve: ^27.2.4 + jest-runtime: ^27.2.4 + jest-util: ^27.2.4 + jest-worker: ^27.2.4 source-map-support: ^0.5.6 throat: ^6.0.1 languageName: unknown linkType: soft -"jest-runtime@^27.2.3, jest-runtime@workspace:packages/jest-runtime": +"jest-runtime@^27.2.4, jest-runtime@workspace:packages/jest-runtime": version: 0.0.0-use.local resolution: "jest-runtime@workspace:packages/jest-runtime" dependencies: - "@jest/console": ^27.2.3 - "@jest/environment": ^27.2.3 - "@jest/fake-timers": ^27.2.3 - "@jest/globals": ^27.2.3 + "@jest/console": ^27.2.4 + "@jest/environment": ^27.2.4 + "@jest/fake-timers": ^27.2.4 + "@jest/globals": ^27.2.4 "@jest/source-map": ^27.0.6 - "@jest/test-result": ^27.2.3 - "@jest/test-utils": ^27.2.3 - "@jest/transform": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/test-result": ^27.2.4 + "@jest/test-utils": ^27.2.4 + "@jest/transform": ^27.2.4 + "@jest/types": ^27.2.4 "@types/exit": ^0.1.30 "@types/glob": ^7.1.1 "@types/graceful-fs": ^4.1.2 @@ -13099,16 +13099,16 @@ fsevents@^1.2.7: exit: ^0.1.2 glob: ^7.1.3 graceful-fs: ^4.2.4 - jest-environment-node: ^27.2.3 - jest-haste-map: ^27.2.3 - jest-message-util: ^27.2.3 - jest-mock: ^27.2.3 + jest-environment-node: ^27.2.4 + jest-haste-map: ^27.2.4 + jest-message-util: ^27.2.4 + jest-mock: ^27.2.4 jest-regex-util: ^27.0.6 - jest-resolve: ^27.2.3 - jest-snapshot: ^27.2.3 + jest-resolve: ^27.2.4 + jest-snapshot: ^27.2.4 jest-snapshot-serializer-raw: ^1.1.0 - jest-util: ^27.2.3 - jest-validate: ^27.2.3 + jest-util: ^27.2.4 + jest-validate: ^27.2.4 slash: ^3.0.0 strip-bom: ^4.0.0 yargs: ^16.2.0 @@ -13152,7 +13152,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jest-snapshot@^27.2.3, jest-snapshot@workspace:*, jest-snapshot@workspace:packages/jest-snapshot": +"jest-snapshot@^27.2.4, jest-snapshot@workspace:*, jest-snapshot@workspace:packages/jest-snapshot": version: 0.0.0-use.local resolution: "jest-snapshot@workspace:packages/jest-snapshot" dependencies: @@ -13164,9 +13164,9 @@ fsevents@^1.2.7: "@babel/preset-react": ^7.7.2 "@babel/traverse": ^7.7.2 "@babel/types": ^7.0.0 - "@jest/test-utils": ^27.2.3 - "@jest/transform": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/test-utils": ^27.2.4 + "@jest/transform": ^27.2.4 + "@jest/types": ^27.2.4 "@types/babel__traverse": ^7.0.4 "@types/graceful-fs": ^4.1.3 "@types/natural-compare": ^1.4.0 @@ -13176,27 +13176,27 @@ fsevents@^1.2.7: ansi-styles: ^5.0.0 babel-preset-current-node-syntax: ^1.0.0 chalk: ^4.0.0 - expect: ^27.2.3 + expect: ^27.2.4 graceful-fs: ^4.2.4 - jest-diff: ^27.2.3 + jest-diff: ^27.2.4 jest-get-type: ^27.0.6 - jest-haste-map: ^27.2.3 - jest-matcher-utils: ^27.2.3 - jest-message-util: ^27.2.3 - jest-resolve: ^27.2.3 - jest-util: ^27.2.3 + jest-haste-map: ^27.2.4 + jest-matcher-utils: ^27.2.4 + jest-message-util: ^27.2.4 + jest-resolve: ^27.2.4 + jest-util: ^27.2.4 natural-compare: ^1.4.0 prettier: ^2.0.0 - pretty-format: ^27.2.3 + pretty-format: ^27.2.4 semver: ^7.3.2 languageName: unknown linkType: soft -"jest-util@^27.2.3, jest-util@workspace:packages/jest-util": +"jest-util@^27.2.4, jest-util@workspace:packages/jest-util": version: 0.0.0-use.local resolution: "jest-util@workspace:packages/jest-util" dependencies: - "@jest/types": ^27.2.3 + "@jest/types": ^27.2.4 "@types/graceful-fs": ^4.1.2 "@types/is-ci": ^3.0.0 "@types/micromatch": ^4.0.1 @@ -13223,17 +13223,17 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jest-validate@^27.2.3, jest-validate@workspace:packages/jest-validate": +"jest-validate@^27.2.4, jest-validate@workspace:packages/jest-validate": version: 0.0.0-use.local resolution: "jest-validate@workspace:packages/jest-validate" dependencies: - "@jest/types": ^27.2.3 + "@jest/types": ^27.2.4 "@types/yargs": ^16.0.0 camelcase: ^6.2.0 chalk: ^4.0.0 jest-get-type: ^27.0.6 leven: ^3.1.0 - pretty-format: ^27.2.3 + pretty-format: ^27.2.4 languageName: unknown linkType: soft @@ -13268,16 +13268,16 @@ fsevents@^1.2.7: languageName: node linkType: hard -"jest-watcher@^27.0.0, jest-watcher@^27.2.3, jest-watcher@workspace:packages/jest-watcher": +"jest-watcher@^27.0.0, jest-watcher@^27.2.4, jest-watcher@workspace:packages/jest-watcher": version: 0.0.0-use.local resolution: "jest-watcher@workspace:packages/jest-watcher" dependencies: - "@jest/test-result": ^27.2.3 - "@jest/types": ^27.2.3 + "@jest/test-result": ^27.2.4 + "@jest/types": ^27.2.4 "@types/node": "*" ansi-escapes: ^4.2.1 chalk: ^4.0.0 - jest-util: ^27.2.3 + jest-util: ^27.2.4 string-length: ^4.0.1 languageName: unknown linkType: soft @@ -13305,7 +13305,7 @@ fsevents@^1.2.7: languageName: unknown linkType: soft -"jest-worker@^27.0.6, jest-worker@^27.2.3, jest-worker@workspace:packages/jest-worker": +"jest-worker@^27.0.6, jest-worker@^27.2.4, jest-worker@workspace:packages/jest-worker": version: 0.0.0-use.local resolution: "jest-worker@workspace:packages/jest-worker" dependencies: @@ -13313,7 +13313,7 @@ fsevents@^1.2.7: "@types/node": "*" "@types/supports-color": ^8.1.0 get-stream: ^6.0.0 - jest-leak-detector: ^27.2.3 + jest-leak-detector: ^27.2.4 merge-stream: ^2.0.0 supports-color: ^8.0.0 worker-farm: ^1.6.0 @@ -13354,9 +13354,9 @@ fsevents@^1.2.7: version: 0.0.0-use.local resolution: "jest@workspace:packages/jest" dependencies: - "@jest/core": ^27.2.3 + "@jest/core": ^27.2.4 import-local: ^3.0.2 - jest-cli: ^27.2.3 + jest-cli: ^27.2.4 peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -17440,18 +17440,18 @@ fsevents@^1.2.7: languageName: node linkType: hard -"pretty-format@^27.2.3, pretty-format@workspace:packages/pretty-format": +"pretty-format@^27.2.4, pretty-format@workspace:packages/pretty-format": version: 0.0.0-use.local resolution: "pretty-format@workspace:packages/pretty-format" dependencies: - "@jest/types": ^27.2.3 + "@jest/types": ^27.2.4 "@types/react": "*" "@types/react-is": ^17.0.0 "@types/react-test-renderer": "*" ansi-regex: ^5.0.1 ansi-styles: ^5.0.0 immutable: 4.0.0-rc.9 - jest-util: ^27.2.3 + jest-util: ^27.2.4 react: "*" react-dom: "*" react-is: ^17.0.1 From ad240edf3d9e2d04d208c441855fd7327ad1dcd3 Mon Sep 17 00:00:00 2001 From: Erik Demaine Date: Wed, 29 Sep 2021 17:12:43 -0400 Subject: [PATCH 02/17] Fix documentation of running ESM jest (#11717) --- docs/ECMAScriptModules.md | 2 +- website/versioned_docs/version-25.x/ECMAScriptModules.md | 2 +- website/versioned_docs/version-26.x/ECMAScriptModules.md | 2 +- website/versioned_docs/version-27.0/ECMAScriptModules.md | 2 +- website/versioned_docs/version-27.1/ECMAScriptModules.md | 2 +- website/versioned_docs/version-27.2/ECMAScriptModules.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/ECMAScriptModules.md b/docs/ECMAScriptModules.md index dafd69276d72..64a1e003b502 100644 --- a/docs/ECMAScriptModules.md +++ b/docs/ECMAScriptModules.md @@ -12,7 +12,7 @@ Jest ships with _experimental_ support for ECMAScript Modules (ESM). With the warnings out of the way, this is how you activate ESM support in your tests. 1. Ensure you either disable [code transforms](./configuration#transform-objectstring-pathtotransformer--pathtotransformer-object) by passing `transform: {}` or otherwise configure your transformer to emit ESM rather than the default CommonJS (CJS). -1. Execute `node` with `--experimental-vm-modules`, e.g. `node --experimental-vm-modules node_modules/.bin/jest` or `NODE_OPTIONS=--experimental-vm-modules npx jest` etc.. On Windows, you can use [`cross-env`](https://github.com/kentcdodds/cross-env) to be able to set environment variables. +1. Execute `node` with `--experimental-vm-modules`, e.g. `node --experimental-vm-modules node_modules/jest/bin/jest.js` or `NODE_OPTIONS=--experimental-vm-modules npx jest` etc.. On Windows, you can use [`cross-env`](https://github.com/kentcdodds/cross-env) to be able to set environment variables. 1. Beyond that, we attempt to follow `node`'s logic for activating "ESM mode" (such as looking at `type` in `package.json` or `.mjs` files), see [their docs](https://nodejs.org/api/esm.html#esm_enabling) for details. 1. If you want to treat other file extensions (such as `.jsx` or `.ts`) as ESM, please use the [`extensionsToTreatAsEsm` option](Configuration.md#extensionstotreatasesm-arraystring). diff --git a/website/versioned_docs/version-25.x/ECMAScriptModules.md b/website/versioned_docs/version-25.x/ECMAScriptModules.md index 7b5e4448419d..b874feb43f9e 100644 --- a/website/versioned_docs/version-25.x/ECMAScriptModules.md +++ b/website/versioned_docs/version-25.x/ECMAScriptModules.md @@ -12,7 +12,7 @@ Jest ships with _experimental_ support for ECMAScript Modules (ESM). With the warnings out of the way, this is how you activate ESM support in your tests. 1. Ensure you either disable [code transforms](./configuration#transform-objectstring-pathtotransformer--pathtotransformer-object) by passing `transform: {}` or otherwise configure your transformer to emit ESM rather than the default CommonJS (CJS). -1. Execute `node` with `--experimental-vm-modules`, e.g. `node --experimental-vm-modules node_modules/.bin/jest` or `NODE_OPTIONS=--experimental-vm-modules npx jest` etc.. On Windows, you can use [`cross-env`](https://github.com/kentcdodds/cross-env) to be able to set environment variables +1. Execute `node` with `--experimental-vm-modules`, e.g. `node --experimental-vm-modules node_modules/jest/bin/jest.js` or `NODE_OPTIONS=--experimental-vm-modules npx jest` etc.. On Windows, you can use [`cross-env`](https://github.com/kentcdodds/cross-env) to be able to set environment variables 1. Beyond that, we attempt to follow `node`'s logic for activating "ESM mode" (such as looking at `type` in `package.json` or `mjs` files), see [their docs](https://nodejs.org/api/esm.html#esm_enabling) for details ## Differences between ESM and CommonJS diff --git a/website/versioned_docs/version-26.x/ECMAScriptModules.md b/website/versioned_docs/version-26.x/ECMAScriptModules.md index 7b5e4448419d..b874feb43f9e 100644 --- a/website/versioned_docs/version-26.x/ECMAScriptModules.md +++ b/website/versioned_docs/version-26.x/ECMAScriptModules.md @@ -12,7 +12,7 @@ Jest ships with _experimental_ support for ECMAScript Modules (ESM). With the warnings out of the way, this is how you activate ESM support in your tests. 1. Ensure you either disable [code transforms](./configuration#transform-objectstring-pathtotransformer--pathtotransformer-object) by passing `transform: {}` or otherwise configure your transformer to emit ESM rather than the default CommonJS (CJS). -1. Execute `node` with `--experimental-vm-modules`, e.g. `node --experimental-vm-modules node_modules/.bin/jest` or `NODE_OPTIONS=--experimental-vm-modules npx jest` etc.. On Windows, you can use [`cross-env`](https://github.com/kentcdodds/cross-env) to be able to set environment variables +1. Execute `node` with `--experimental-vm-modules`, e.g. `node --experimental-vm-modules node_modules/jest/bin/jest.js` or `NODE_OPTIONS=--experimental-vm-modules npx jest` etc.. On Windows, you can use [`cross-env`](https://github.com/kentcdodds/cross-env) to be able to set environment variables 1. Beyond that, we attempt to follow `node`'s logic for activating "ESM mode" (such as looking at `type` in `package.json` or `mjs` files), see [their docs](https://nodejs.org/api/esm.html#esm_enabling) for details ## Differences between ESM and CommonJS diff --git a/website/versioned_docs/version-27.0/ECMAScriptModules.md b/website/versioned_docs/version-27.0/ECMAScriptModules.md index 72ceb6d5c5d0..42b5f1641e0d 100644 --- a/website/versioned_docs/version-27.0/ECMAScriptModules.md +++ b/website/versioned_docs/version-27.0/ECMAScriptModules.md @@ -12,7 +12,7 @@ Jest ships with _experimental_ support for ECMAScript Modules (ESM). With the warnings out of the way, this is how you activate ESM support in your tests. 1. Ensure you either disable [code transforms](./configuration#transform-objectstring-pathtotransformer--pathtotransformer-object) by passing `transform: {}` or otherwise configure your transformer to emit ESM rather than the default CommonJS (CJS). -1. Execute `node` with `--experimental-vm-modules`, e.g. `node --experimental-vm-modules node_modules/.bin/jest` or `NODE_OPTIONS=--experimental-vm-modules npx jest` etc.. On Windows, you can use [`cross-env`](https://github.com/kentcdodds/cross-env) to be able to set environment variables. +1. Execute `node` with `--experimental-vm-modules`, e.g. `node --experimental-vm-modules node_modules/jest/bin/jest.js` or `NODE_OPTIONS=--experimental-vm-modules npx jest` etc.. On Windows, you can use [`cross-env`](https://github.com/kentcdodds/cross-env) to be able to set environment variables. 1. Beyond that, we attempt to follow `node`'s logic for activating "ESM mode" (such as looking at `type` in `package.json` or `mjs` files), see [their docs](https://nodejs.org/api/esm.html#esm_enabling) for details. 1. If you want to treat other file extensions (such as `.jsx` or `.ts`) as ESM, please use the [`extensionsToTreatAsEsm` option](Configuration.md#extensionstotreatasesm-arraystring). diff --git a/website/versioned_docs/version-27.1/ECMAScriptModules.md b/website/versioned_docs/version-27.1/ECMAScriptModules.md index dafd69276d72..64a1e003b502 100644 --- a/website/versioned_docs/version-27.1/ECMAScriptModules.md +++ b/website/versioned_docs/version-27.1/ECMAScriptModules.md @@ -12,7 +12,7 @@ Jest ships with _experimental_ support for ECMAScript Modules (ESM). With the warnings out of the way, this is how you activate ESM support in your tests. 1. Ensure you either disable [code transforms](./configuration#transform-objectstring-pathtotransformer--pathtotransformer-object) by passing `transform: {}` or otherwise configure your transformer to emit ESM rather than the default CommonJS (CJS). -1. Execute `node` with `--experimental-vm-modules`, e.g. `node --experimental-vm-modules node_modules/.bin/jest` or `NODE_OPTIONS=--experimental-vm-modules npx jest` etc.. On Windows, you can use [`cross-env`](https://github.com/kentcdodds/cross-env) to be able to set environment variables. +1. Execute `node` with `--experimental-vm-modules`, e.g. `node --experimental-vm-modules node_modules/jest/bin/jest.js` or `NODE_OPTIONS=--experimental-vm-modules npx jest` etc.. On Windows, you can use [`cross-env`](https://github.com/kentcdodds/cross-env) to be able to set environment variables. 1. Beyond that, we attempt to follow `node`'s logic for activating "ESM mode" (such as looking at `type` in `package.json` or `.mjs` files), see [their docs](https://nodejs.org/api/esm.html#esm_enabling) for details. 1. If you want to treat other file extensions (such as `.jsx` or `.ts`) as ESM, please use the [`extensionsToTreatAsEsm` option](Configuration.md#extensionstotreatasesm-arraystring). diff --git a/website/versioned_docs/version-27.2/ECMAScriptModules.md b/website/versioned_docs/version-27.2/ECMAScriptModules.md index dafd69276d72..64a1e003b502 100644 --- a/website/versioned_docs/version-27.2/ECMAScriptModules.md +++ b/website/versioned_docs/version-27.2/ECMAScriptModules.md @@ -12,7 +12,7 @@ Jest ships with _experimental_ support for ECMAScript Modules (ESM). With the warnings out of the way, this is how you activate ESM support in your tests. 1. Ensure you either disable [code transforms](./configuration#transform-objectstring-pathtotransformer--pathtotransformer-object) by passing `transform: {}` or otherwise configure your transformer to emit ESM rather than the default CommonJS (CJS). -1. Execute `node` with `--experimental-vm-modules`, e.g. `node --experimental-vm-modules node_modules/.bin/jest` or `NODE_OPTIONS=--experimental-vm-modules npx jest` etc.. On Windows, you can use [`cross-env`](https://github.com/kentcdodds/cross-env) to be able to set environment variables. +1. Execute `node` with `--experimental-vm-modules`, e.g. `node --experimental-vm-modules node_modules/jest/bin/jest.js` or `NODE_OPTIONS=--experimental-vm-modules npx jest` etc.. On Windows, you can use [`cross-env`](https://github.com/kentcdodds/cross-env) to be able to set environment variables. 1. Beyond that, we attempt to follow `node`'s logic for activating "ESM mode" (such as looking at `type` in `package.json` or `.mjs` files), see [their docs](https://nodejs.org/api/esm.html#esm_enabling) for details. 1. If you want to treat other file extensions (such as `.jsx` or `.ts`) as ESM, please use the [`extensionsToTreatAsEsm` option](Configuration.md#extensionstotreatasesm-arraystring). From 48cef098d2598b3644c7bb13ea16b77638ebc1e5 Mon Sep 17 00:00:00 2001 From: mrazauskas <72159681+mrazauskas@users.noreply.github.com> Date: Thu, 30 Sep 2021 11:30:22 +0300 Subject: [PATCH 03/17] fix(types): mark deprecated configuration options as `@deprecated` (#11913) --- CHANGELOG.md | 2 ++ packages/jest-types/src/Config.ts | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e21cf3506a11..dba0f8a2a511 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ ### Fixes +- `[@jest/types]` Mark deprecated configuration options as `@deprecated` ([#11913](https://github.com/facebook/jest/pull/11913)) + ### Chore & Maintenance ### Performance diff --git a/packages/jest-types/src/Config.ts b/packages/jest-types/src/Config.ts index 2108342c9383..d94e4296b5f5 100644 --- a/packages/jest-types/src/Config.ts +++ b/packages/jest-types/src/Config.ts @@ -196,6 +196,9 @@ export type InitialOptions = Partial<{ onlyFailures: boolean; outputFile: Path; passWithNoTests: boolean; + /** + * @deprecated Use `transformIgnorePatterns` options instead. + */ preprocessorIgnorePatterns: Array; preset: string | null | undefined; prettierPath: string | null | undefined; @@ -209,6 +212,9 @@ export type InitialOptions = Partial<{ roots: Array; runner: string; runTestsByPath: boolean; + /** + * @deprecated Use `transform` options instead. + */ scriptPreprocessor: string; setupFiles: Array; /** @@ -230,6 +236,9 @@ export type InitialOptions = Partial<{ testLocationInResults: boolean; testMatch: Array; testNamePattern: string; + /** + * @deprecated Use `roots` options instead. + */ testPathDirs: Array; testPathIgnorePatterns: Array; testRegex: string | Array; From ba55fe7940ee9c442e3262d564be2768e9ebb79e Mon Sep 17 00:00:00 2001 From: mrazauskas <72159681+mrazauskas@users.noreply.github.com> Date: Thu, 30 Sep 2021 12:42:57 +0300 Subject: [PATCH 04/17] fix(cli): improve `--help` printout by removing defunct `--browser` option (#11914) --- CHANGELOG.md | 1 + packages/jest-cli/src/cli/args.ts | 7 ------- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dba0f8a2a511..4fb9c5886151 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Fixes - `[@jest/types]` Mark deprecated configuration options as `@deprecated` ([#11913](https://github.com/facebook/jest/pull/11913)) +- `[jest-cli]` Improve `--help` printout by removing defunct `--browser` option ([#11914](https://github.com/facebook/jest/pull/11914)) ### Chore & Maintenance diff --git a/packages/jest-cli/src/cli/args.ts b/packages/jest-cli/src/cli/args.ts index 26d2101e24f0..85f78feedfa6 100644 --- a/packages/jest-cli/src/cli/args.ts +++ b/packages/jest-cli/src/cli/args.ts @@ -107,13 +107,6 @@ export const options = { 'Exit the test suite immediately after `n` number of failing tests.', type: 'boolean', }, - browser: { - description: - 'Respect the "browser" field in package.json ' + - 'when resolving modules. Some packages export different versions ' + - 'based on whether they are operating in node.js or a browser.', - type: 'boolean', - }, cache: { description: 'Whether to use the transform cache. Disable the cache ' + From c3b0946a639e64b76387ae979249d52df7cfe262 Mon Sep 17 00:00:00 2001 From: Moti Zilberman Date: Thu, 30 Sep 2021 12:39:19 +0100 Subject: [PATCH 05/17] fix(jest-haste-map): Add computeDependencies to cache path (#11916) --- CHANGELOG.md | 1 + .../jest-haste-map/src/__tests__/index.test.js | 14 ++++++++++++++ packages/jest-haste-map/src/index.ts | 1 + 3 files changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fb9c5886151..828a9175cba3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - `[@jest/types]` Mark deprecated configuration options as `@deprecated` ([#11913](https://github.com/facebook/jest/pull/11913)) - `[jest-cli]` Improve `--help` printout by removing defunct `--browser` option ([#11914](https://github.com/facebook/jest/pull/11914)) +- `[jest-haste-map]` Use distinct cache paths for different values of `computeDependencies` ([#11916](https://github.com/facebook/jest/pull/11916)) ### Chore & Maintenance diff --git a/packages/jest-haste-map/src/__tests__/index.test.js b/packages/jest-haste-map/src/__tests__/index.test.js index c95ed070998f..90ca7dccf774 100644 --- a/packages/jest-haste-map/src/__tests__/index.test.js +++ b/packages/jest-haste-map/src/__tests__/index.test.js @@ -265,6 +265,20 @@ describe('HasteMap', () => { expect(hasteMap1.getCacheFilePath()).not.toBe(hasteMap2.getCacheFilePath()); }); + it('creates different cache file paths for different values of computeDependencies', () => { + jest.resetModules(); + const HasteMap = require('../').default; + const hasteMap1 = new HasteMap({ + ...defaultConfig, + computeDependencies: true, + }); + const hasteMap2 = new HasteMap({ + ...defaultConfig, + computeDependencies: false, + }); + expect(hasteMap1.getCacheFilePath()).not.toBe(hasteMap2.getCacheFilePath()); + }); + it('creates different cache file paths for different hasteImplModulePath cache keys', () => { jest.resetModules(); const HasteMap = require('../').default; diff --git a/packages/jest-haste-map/src/index.ts b/packages/jest-haste-map/src/index.ts index 213e623a4cfe..760f2a975afa 100644 --- a/packages/jest-haste-map/src/index.ts +++ b/packages/jest-haste-map/src/index.ts @@ -325,6 +325,7 @@ export default class HasteMap extends EventEmitter { (options.ignorePattern || '').toString(), hasteImplHash, dependencyExtractorHash, + this._options.computeDependencies.toString(), ); this._buildPromise = null; this._watchers = []; From a5ee117e4c1671ac8a4c2411b09364479dcc8deb Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Fri, 1 Oct 2021 11:45:01 +0200 Subject: [PATCH 06/17] chore: tweak babel config (#11918) --- babel.config.js | 4 ++-- scripts/build.js | 9 +-------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/babel.config.js b/babel.config.js index 94386a0142b9..c21ead9e6305 100644 --- a/babel.config.js +++ b/babel.config.js @@ -46,8 +46,8 @@ module.exports = { '@babel/preset-env', { bugfixes: true, - // a runtime error is preferable, and we need a real `import` - exclude: ['@babel/plugin-proposal-dynamic-import'], + // we manually include the CJS plugin above, so let's make preset-env do less work + modules: false, shippedProposals: true, targets: {node: supportedNodeVersion}, }, diff --git a/scripts/build.js b/scripts/build.js index 653e0cfa24de..ac0f2255e0a3 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -112,14 +112,7 @@ function buildFile(file, silent) { Array.isArray(plugin) && plugin[0] === '@babel/plugin-transform-modules-commonjs' ) { - return [ - plugin[0], - Object.assign({}, plugin[1], { - lazy: string => - // we want to lazyload all non-local modules plus `importEsm` - the latter to avoid syntax errors. Set to just `true` when we drop support for node 8 - !string.startsWith('./') || string === './importEsm', - }), - ]; + return [plugin[0], Object.assign({}, plugin[1], {lazy: true})]; } return plugin; From b9fc8ac78ca6b6dfdb90797523c21d06e819512c Mon Sep 17 00:00:00 2001 From: Huyen Nguyen <25715018+huyenltnguyen@users.noreply.github.com> Date: Sat, 2 Oct 2021 19:19:55 +0700 Subject: [PATCH 07/17] docs: fix a typo (#11921) --- docs/TimerMocks.md | 2 +- website/versioned_docs/version-25.x/TimerMocks.md | 2 +- website/versioned_docs/version-26.x/TimerMocks.md | 2 +- website/versioned_docs/version-27.0/TimerMocks.md | 2 +- website/versioned_docs/version-27.1/TimerMocks.md | 2 +- website/versioned_docs/version-27.2/TimerMocks.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/TimerMocks.md b/docs/TimerMocks.md index 43e07ca0201f..ef2cc71fe361 100644 --- a/docs/TimerMocks.md +++ b/docs/TimerMocks.md @@ -124,7 +124,7 @@ describe('infiniteTimerGame', () => { // (but not any new timers that get created during that process) jest.runOnlyPendingTimers(); - // At this point, our 1-second timer should have fired it's callback + // At this point, our 1-second timer should have fired its callback expect(callback).toBeCalled(); // And it should have created a new timer to start the game over in diff --git a/website/versioned_docs/version-25.x/TimerMocks.md b/website/versioned_docs/version-25.x/TimerMocks.md index 89f2066d82c3..ff8a16ef988a 100644 --- a/website/versioned_docs/version-25.x/TimerMocks.md +++ b/website/versioned_docs/version-25.x/TimerMocks.md @@ -107,7 +107,7 @@ describe('infiniteTimerGame', () => { // (but not any new timers that get created during that process) jest.runOnlyPendingTimers(); - // At this point, our 1-second timer should have fired it's callback + // At this point, our 1-second timer should have fired its callback expect(callback).toBeCalled(); // And it should have created a new timer to start the game over in diff --git a/website/versioned_docs/version-26.x/TimerMocks.md b/website/versioned_docs/version-26.x/TimerMocks.md index 89f2066d82c3..ff8a16ef988a 100644 --- a/website/versioned_docs/version-26.x/TimerMocks.md +++ b/website/versioned_docs/version-26.x/TimerMocks.md @@ -107,7 +107,7 @@ describe('infiniteTimerGame', () => { // (but not any new timers that get created during that process) jest.runOnlyPendingTimers(); - // At this point, our 1-second timer should have fired it's callback + // At this point, our 1-second timer should have fired its callback expect(callback).toBeCalled(); // And it should have created a new timer to start the game over in diff --git a/website/versioned_docs/version-27.0/TimerMocks.md b/website/versioned_docs/version-27.0/TimerMocks.md index 43e07ca0201f..ef2cc71fe361 100644 --- a/website/versioned_docs/version-27.0/TimerMocks.md +++ b/website/versioned_docs/version-27.0/TimerMocks.md @@ -124,7 +124,7 @@ describe('infiniteTimerGame', () => { // (but not any new timers that get created during that process) jest.runOnlyPendingTimers(); - // At this point, our 1-second timer should have fired it's callback + // At this point, our 1-second timer should have fired its callback expect(callback).toBeCalled(); // And it should have created a new timer to start the game over in diff --git a/website/versioned_docs/version-27.1/TimerMocks.md b/website/versioned_docs/version-27.1/TimerMocks.md index 43e07ca0201f..ef2cc71fe361 100644 --- a/website/versioned_docs/version-27.1/TimerMocks.md +++ b/website/versioned_docs/version-27.1/TimerMocks.md @@ -124,7 +124,7 @@ describe('infiniteTimerGame', () => { // (but not any new timers that get created during that process) jest.runOnlyPendingTimers(); - // At this point, our 1-second timer should have fired it's callback + // At this point, our 1-second timer should have fired its callback expect(callback).toBeCalled(); // And it should have created a new timer to start the game over in diff --git a/website/versioned_docs/version-27.2/TimerMocks.md b/website/versioned_docs/version-27.2/TimerMocks.md index 43e07ca0201f..ef2cc71fe361 100644 --- a/website/versioned_docs/version-27.2/TimerMocks.md +++ b/website/versioned_docs/version-27.2/TimerMocks.md @@ -124,7 +124,7 @@ describe('infiniteTimerGame', () => { // (but not any new timers that get created during that process) jest.runOnlyPendingTimers(); - // At this point, our 1-second timer should have fired it's callback + // At this point, our 1-second timer should have fired its callback expect(callback).toBeCalled(); // And it should have created a new timer to start the game over in From 2dfde567a379cbc51039ec318715fbf8fd7749b7 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Tue, 5 Oct 2021 13:20:09 +0200 Subject: [PATCH 08/17] chore: bump jest-junit --- package.json | 2 +- yarn.lock | 92 ++++++++++++++++++++++++++-------------------------- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/package.json b/package.json index 6b0acfee0527..d28658692943 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "istanbul-reports": "^3.0.0", "jest": "workspace:*", "jest-changed-files": "workspace:*", - "jest-junit": "^12.0.0", + "jest-junit": "^13.0.0", "jest-mock": "workspace:*", "jest-runner-tsd": "^1.1.0", "jest-silent-reporter": "^0.5.0", diff --git a/yarn.lock b/yarn.lock index 6c85c0e5e11d..94e28baf81a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2602,7 +2602,7 @@ __metadata: istanbul-reports: ^3.0.0 jest: "workspace:*" jest-changed-files: "workspace:*" - jest-junit: ^12.0.0 + jest-junit: ^13.0.0 jest-mock: "workspace:*" jest-runner-tsd: ^1.1.0 jest-silent-reporter: ^0.5.0 @@ -6027,20 +6027,20 @@ __metadata: linkType: hard "autoprefixer@npm:^10.2.0, autoprefixer@npm:^10.2.5": - version: 10.3.6 - resolution: "autoprefixer@npm:10.3.6" + version: 10.3.7 + resolution: "autoprefixer@npm:10.3.7" dependencies: - browserslist: ^4.17.1 - caniuse-lite: ^1.0.30001260 + browserslist: ^4.17.3 + caniuse-lite: ^1.0.30001264 fraction.js: ^4.1.1 - nanocolors: ^0.2.8 normalize-range: ^0.1.2 + picocolors: ^0.2.1 postcss-value-parser: ^4.1.0 peerDependencies: postcss: ^8.1.0 bin: autoprefixer: bin/autoprefixer - checksum: 2e1b990592a6f982dfc2311a7c58494080b783ab45531277eed14949994c91704c25c596251fc0967dd2749a0cb6459a110781f724805f3c576dde4d3aa886d2 + checksum: bbd835343f14de4aaa9246d2196374eaafa59f2f9de3070ac4f9d7c5a92901b8fd6d03b5b0b33ed2b33c971946a010a69dc3703005456774ced5d98bb0e275e0 languageName: node linkType: hard @@ -6612,18 +6612,18 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.14.5, browserslist@npm:^4.16.0, browserslist@npm:^4.16.6, browserslist@npm:^4.17.1": - version: 4.17.1 - resolution: "browserslist@npm:4.17.1" +"browserslist@npm:^4.0.0, browserslist@npm:^4.14.5, browserslist@npm:^4.16.0, browserslist@npm:^4.16.6, browserslist@npm:^4.17.1, browserslist@npm:^4.17.3": + version: 4.17.3 + resolution: "browserslist@npm:4.17.3" dependencies: - caniuse-lite: ^1.0.30001259 - electron-to-chromium: ^1.3.846 + caniuse-lite: ^1.0.30001264 + electron-to-chromium: ^1.3.857 escalade: ^3.1.1 - nanocolors: ^0.1.5 - node-releases: ^1.1.76 + node-releases: ^1.1.77 + picocolors: ^0.2.1 bin: browserslist: cli.js - checksum: 735d4f007dc74f5281d80c7f1677e22d750b78cf9e3c934e8ff4308674fcd4b561c9ec4a8aca7fecd34366077489b29004ca472a480140ccd7674d739c21b7f6 + checksum: a68e1d1d5802cdcc4403ffc11df2d7b029ac5e36a8de245b8ab234e9b9cb83923b8f4f69b312b5f7fa2183c43a7091436b22949afddda796cc1ffcfd573effb9 languageName: node linkType: hard @@ -6870,10 +6870,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001125, caniuse-lite@npm:^1.0.30001259, caniuse-lite@npm:^1.0.30001260": - version: 1.0.30001261 - resolution: "caniuse-lite@npm:1.0.30001261" - checksum: 7739142d9388560b287e0cedef5c4a9699cc8516afb3d0dc954e15dc6506729f893dc780438d398fb49234f5a2aec9e90e1021a7fbeb33c55368c4a4f5d17b59 +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001125, caniuse-lite@npm:^1.0.30001264": + version: 1.0.30001264 + resolution: "caniuse-lite@npm:1.0.30001264" + checksum: 98c7297f333e2a637315c33aaa8e15e98b42829d483d7ffb41a0eecd6216375f8a40670ec1e7239985fd7b495f5cdcc5e415ce61cc0a7d9748a19b8450d5b211 languageName: node linkType: hard @@ -8823,10 +8823,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.3.564, electron-to-chromium@npm:^1.3.846": - version: 1.3.851 - resolution: "electron-to-chromium@npm:1.3.851" - checksum: f8bc608881f1d5a7b989155ecb11cd39f766c0f3adb675dcc712b0c86443b9242a83372189f7b0b7a731aaddab394bcecec39e84252faad9fc702af1ab7d5f6f +"electron-to-chromium@npm:^1.3.564, electron-to-chromium@npm:^1.3.857": + version: 1.3.859 + resolution: "electron-to-chromium@npm:1.3.859" + checksum: 3a838b14612ab02cf57d1dcc5afc07b579aec6619f3cd2d8d7b7adcbb132ffe0facc6f4ddccc12cabbe2416f647c3240151e19ef7c82337965b47342f49f536f languageName: node linkType: hard @@ -12874,15 +12874,15 @@ fsevents@^1.2.7: languageName: unknown linkType: soft -"jest-junit@npm:^12.0.0": - version: 12.3.0 - resolution: "jest-junit@npm:12.3.0" +"jest-junit@npm:^13.0.0": + version: 13.0.0 + resolution: "jest-junit@npm:13.0.0" dependencies: mkdirp: ^1.0.4 - strip-ansi: ^5.2.0 + strip-ansi: ^6.0.1 uuid: ^8.3.2 xml: ^1.0.1 - checksum: a8b90538db7c61dd2bd4c287914927a6631bbc602e221cf1252be729db9ab66473c2f38381d0baaa7358f9efcaee224b5b0de9b4965e58cab588405cfa7fdda8 + checksum: d81252785ccb1b97e035c47d49c32f1ef3a1c9c11638a05c79396af18ee8322e5cc76539f9a51a90fea7733856fef8fc3caebdfffa1c2309f5c60b0271c37825 languageName: node linkType: hard @@ -15465,21 +15465,14 @@ fsevents@^1.2.7: languageName: node linkType: hard -"nanocolors@npm:^0.1.12, nanocolors@npm:^0.1.5": +"nanocolors@npm:^0.1.12": version: 0.1.12 resolution: "nanocolors@npm:0.1.12" checksum: be3529320c895fcd16b79185c830c3c997c83026ca14d1119025d817b9ddcf175ac2b04b50f7e8928edf4082b98a0a106e6723ebc5ad73ccfd7366aeb8ce66a6 languageName: node linkType: hard -"nanocolors@npm:^0.2.2, nanocolors@npm:^0.2.8": - version: 0.2.11 - resolution: "nanocolors@npm:0.2.11" - checksum: f9d6cafb1d8d2f0423db81d22aed1ea9d82ce77dd919dcf6e79e7a779d7d9ab51e5415a6c92e13a131f85bf154f033cbd9646bbbcba4b9f66494e945927dc93f - languageName: node - linkType: hard - -"nanoid@npm:^3.1.25": +"nanoid@npm:^3.1.28": version: 3.1.28 resolution: "nanoid@npm:3.1.28" bin: @@ -15726,10 +15719,10 @@ fsevents@^1.2.7: languageName: node linkType: hard -"node-releases@npm:^1.1.61, node-releases@npm:^1.1.76": - version: 1.1.76 - resolution: "node-releases@npm:1.1.76" - checksum: 965c5a4f5a3d8953e95388178d9d0df76da443eb8108817dc19e7fc9a6c97e3f4c6f7f7728b99912c41d7f80f468573395b47c9c6bdd3e319a61b4bb173fcac4 +"node-releases@npm:^1.1.61, node-releases@npm:^1.1.77": + version: 1.1.77 + resolution: "node-releases@npm:1.1.77" + checksum: acc54c73e9a23a854bc04c3e5b948e9f043498e744b8bc7b9169331fed0fba291cb60adc4552809d6d95ef9ed45d16047441205cd80d33c140c68ee0fb767dfc languageName: node linkType: hard @@ -16779,6 +16772,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"picocolors@npm:^0.2.1": + version: 0.2.1 + resolution: "picocolors@npm:0.2.1" + checksum: 84da675558ed004c61a7fa7b0bcce6338c8e3ef1eadb43b5263059d1d745f4567464aa6aa603c506a82942a5a7dfda5bb023605a5f4c9888d7adc154845d579e + languageName: node + linkType: hard + "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3": version: 2.3.0 resolution: "picomatch@npm:2.3.0" @@ -17374,13 +17374,13 @@ fsevents@^1.2.7: linkType: hard "postcss@npm:^8.2.15, postcss@npm:^8.2.4, postcss@npm:^8.2.9": - version: 8.3.8 - resolution: "postcss@npm:8.3.8" + version: 8.3.9 + resolution: "postcss@npm:8.3.9" dependencies: - nanocolors: ^0.2.2 - nanoid: ^3.1.25 + nanoid: ^3.1.28 + picocolors: ^0.2.1 source-map-js: ^0.6.2 - checksum: bea4f2f367c803739ca89c6773aa80ecad6480171db7e1ebb211fabe7eaf7ff68b3b4d007e41f84d561344a588d62d1b50b3e46e1f5c368712100df553fc09ca + checksum: f67654ab01ec6ec9126eb5ed64b06f602dfce7e6a38aa7f4d3cdb67fe40fe97234286c5fd6769f56138206ea80e944c62f909052b00c351239064ef3b850664d languageName: node linkType: hard From f13abff8df9a0e1148baf3584bcde6d1b479edc7 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Tue, 5 Oct 2021 13:41:28 +0200 Subject: [PATCH 09/17] fix: pass matcher context to asymmetric matchers (#11926) --- CHANGELOG.md | 1 + .../__snapshots__/extend.test.ts.snap | 4 +- packages/expect/src/__tests__/extend.test.ts | 20 ++++-- packages/expect/src/asymmetricMatchers.ts | 50 ++++++++----- packages/expect/src/jestMatchersObject.ts | 10 +-- packages/expect/src/matchers.ts | 72 ++++++------------- packages/expect/src/types.ts | 7 +- 7 files changed, 83 insertions(+), 81 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 828a9175cba3..5377b630f12e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ### Fixes +- `[expect]` Pass matcher context to asymmetric matchers ([#11926](https://github.com/facebook/jest/pull/11926)) - `[@jest/types]` Mark deprecated configuration options as `@deprecated` ([#11913](https://github.com/facebook/jest/pull/11913)) - `[jest-cli]` Improve `--help` printout by removing defunct `--browser` option ([#11914](https://github.com/facebook/jest/pull/11914)) - `[jest-haste-map]` Use distinct cache paths for different values of `computeDependencies` ([#11916](https://github.com/facebook/jest/pull/11916)) diff --git a/packages/expect/src/__tests__/__snapshots__/extend.test.ts.snap b/packages/expect/src/__tests__/__snapshots__/extend.test.ts.snap index 68129f9c16d7..0dcdf8adf905 100644 --- a/packages/expect/src/__tests__/__snapshots__/extend.test.ts.snap +++ b/packages/expect/src/__tests__/__snapshots__/extend.test.ts.snap @@ -48,9 +48,9 @@ exports[`defines asymmetric variadic matchers that can be prefixed by not 1`] = } `; -exports[`is available globally when matcher is unary 1`] = `expected 15 to be divisible by 2`; +exports[`is available globally when matcher is unary 1`] = `expected 15 to be divisible by 2`; -exports[`is available globally when matcher is variadic 1`] = `expected 15 to be within range 1 - 3`; +exports[`is available globally when matcher is variadic 1`] = `expected 15 to be within range 1 - 3`; exports[`is ok if there is no message specified 1`] = `No message was specified for this matcher.`; diff --git a/packages/expect/src/__tests__/extend.test.ts b/packages/expect/src/__tests__/extend.test.ts index 898fa98640d5..8fdfd1d856c1 100644 --- a/packages/expect/src/__tests__/extend.test.ts +++ b/packages/expect/src/__tests__/extend.test.ts @@ -18,8 +18,14 @@ jestExpect.extend({ toBeDivisibleBy(actual: number, expected: number) { const pass = actual % expected === 0; const message = pass - ? () => `expected ${actual} not to be divisible by ${expected}` - : () => `expected ${actual} to be divisible by ${expected}`; + ? () => + `expected ${this.utils.printReceived( + actual, + )} not to be divisible by ${expected}` + : () => + `expected ${this.utils.printReceived( + actual, + )} to be divisible by ${expected}`; return {message, pass}; }, @@ -33,8 +39,14 @@ jestExpect.extend({ toBeWithinRange(actual: number, floor: number, ceiling: number) { const pass = actual >= floor && actual <= ceiling; const message = pass - ? () => `expected ${actual} not to be within range ${floor} - ${ceiling}` - : () => `expected ${actual} to be within range ${floor} - ${ceiling}`; + ? () => + `expected ${this.utils.printReceived( + actual, + )} not to be within range ${floor} - ${ceiling}` + : () => + `expected ${this.utils.printReceived( + actual, + )} to be within range ${floor} - ${ceiling}`; return {message, pass}; }, diff --git a/packages/expect/src/asymmetricMatchers.ts b/packages/expect/src/asymmetricMatchers.ts index c906f247e742..5d56358192bb 100644 --- a/packages/expect/src/asymmetricMatchers.ts +++ b/packages/expect/src/asymmetricMatchers.ts @@ -6,16 +6,35 @@ * */ +import * as matcherUtils from 'jest-matcher-utils'; import {equals, fnNameFor, hasProperty, isA, isUndefined} from './jasmineUtils'; +import {getState} from './jestMatchersObject'; +import type {MatcherState} from './types'; +import {iterableEquality, subsetEquality} from './utils'; export class AsymmetricMatcher { protected sample: T; + protected readonly matcherState: MatcherState; $$typeof: symbol; + // TODO: remove this field in Jest 28 (use `matcherState`) inverse?: boolean; - constructor(sample: T) { + constructor(sample: T, isNot = false) { this.$$typeof = Symbol.for('jest.asymmetricMatcher'); this.sample = sample; + + const utils = {...matcherUtils, iterableEquality, subsetEquality}; + + const matcherContext: MatcherState = { + ...getState(), + equals, + isNot, + utils, + }; + + this.inverse = matcherContext.isNot; + + this.matcherState = matcherContext; } } @@ -114,8 +133,7 @@ class Anything extends AsymmetricMatcher { class ArrayContaining extends AsymmetricMatcher> { constructor(sample: Array, inverse: boolean = false) { - super(sample); - this.inverse = inverse; + super(sample, inverse); } asymmetricMatch(other: Array) { @@ -134,11 +152,11 @@ class ArrayContaining extends AsymmetricMatcher> { other.some(another => equals(item, another)), )); - return this.inverse ? !result : result; + return this.matcherState.isNot ? !result : result; } toString() { - return `Array${this.inverse ? 'Not' : ''}Containing`; + return `Array${this.matcherState.isNot ? 'Not' : ''}Containing`; } getExpectedType() { @@ -148,8 +166,7 @@ class ArrayContaining extends AsymmetricMatcher> { class ObjectContaining extends AsymmetricMatcher> { constructor(sample: Record, inverse: boolean = false) { - super(sample); - this.inverse = inverse; + super(sample, inverse); } asymmetricMatch(other: any) { @@ -173,11 +190,11 @@ class ObjectContaining extends AsymmetricMatcher> { } } - return this.inverse ? !result : result; + return this.matcherState.isNot ? !result : result; } toString() { - return `Object${this.inverse ? 'Not' : ''}Containing`; + return `Object${this.matcherState.isNot ? 'Not' : ''}Containing`; } getExpectedType() { @@ -190,18 +207,17 @@ class StringContaining extends AsymmetricMatcher { if (!isA('String', sample)) { throw new Error('Expected is not a string'); } - super(sample); - this.inverse = inverse; + super(sample, inverse); } asymmetricMatch(other: string) { const result = isA('String', other) && other.includes(this.sample); - return this.inverse ? !result : result; + return this.matcherState.isNot ? !result : result; } toString() { - return `String${this.inverse ? 'Not' : ''}Containing`; + return `String${this.matcherState.isNot ? 'Not' : ''}Containing`; } getExpectedType() { @@ -214,19 +230,17 @@ class StringMatching extends AsymmetricMatcher { if (!isA('String', sample) && !isA('RegExp', sample)) { throw new Error('Expected is not a String or a RegExp'); } - super(new RegExp(sample)); - - this.inverse = inverse; + super(new RegExp(sample), inverse); } asymmetricMatch(other: string) { const result = isA('String', other) && this.sample.test(other); - return this.inverse ? !result : result; + return this.matcherState.isNot ? !result : result; } toString() { - return `String${this.inverse ? 'Not' : ''}Matching`; + return `String${this.matcherState.isNot ? 'Not' : ''}Matching`; } getExpectedType() { diff --git a/packages/expect/src/jestMatchersObject.ts b/packages/expect/src/jestMatchersObject.ts index 93876b220d60..68aa1bfd659e 100644 --- a/packages/expect/src/jestMatchersObject.ts +++ b/packages/expect/src/jestMatchersObject.ts @@ -63,21 +63,21 @@ export const setMatchers = ( class CustomMatcher extends AsymmetricMatcher<[unknown, unknown]> { constructor(inverse: boolean = false, ...sample: [unknown, unknown]) { - super(sample); - this.inverse = inverse; + super(sample, inverse); } asymmetricMatch(other: unknown) { - const {pass} = matcher( + const {pass} = matcher.call( + this.matcherState, other, ...this.sample, ) as SyncExpectationResult; - return this.inverse ? !pass : pass; + return this.matcherState.isNot ? !pass : pass; } toString() { - return `${this.inverse ? 'not.' : ''}${key}`; + return `${this.matcherState.isNot ? 'not.' : ''}${key}`; } getExpectedType() { diff --git a/packages/expect/src/matchers.ts b/packages/expect/src/matchers.ts index 344374330cb6..f7f019129d51 100644 --- a/packages/expect/src/matchers.ts +++ b/packages/expect/src/matchers.ts @@ -38,7 +38,7 @@ import { printReceivedStringContainExpectedResult, printReceivedStringContainExpectedSubstring, } from './print'; -import type {MatcherState, MatchersObject} from './types'; +import type {MatchersObject} from './types'; import { arrayBufferEquality, getObjectSubset, @@ -73,7 +73,7 @@ type ContainIterable = | HTMLCollectionOf; const matchers: MatchersObject = { - toBe(this: MatcherState, received: unknown, expected: unknown) { + toBe(received: unknown, expected: unknown) { const matcherName = 'toBe'; const options: MatcherHintOptions = { comment: 'Object.is equality', @@ -126,12 +126,7 @@ const matchers: MatchersObject = { return {actual: received, expected, message, name: matcherName, pass}; }, - toBeCloseTo( - this: MatcherState, - received: number, - expected: number, - precision: number = 2, - ) { + toBeCloseTo(received: number, expected: number, precision: number = 2) { const matcherName = 'toBeCloseTo'; const secondArgument = arguments.length === 3 ? 'precision' : undefined; const isNot = this.isNot; @@ -197,7 +192,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toBeDefined(this: MatcherState, received: unknown, expected: void) { + toBeDefined(received: unknown, expected: void) { const matcherName = 'toBeDefined'; const options: MatcherHintOptions = { isNot: this.isNot, @@ -215,7 +210,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toBeFalsy(this: MatcherState, received: unknown, expected: void) { + toBeFalsy(received: unknown, expected: void) { const matcherName = 'toBeFalsy'; const options: MatcherHintOptions = { isNot: this.isNot, @@ -233,11 +228,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toBeGreaterThan( - this: MatcherState, - received: number | bigint, - expected: number | bigint, - ) { + toBeGreaterThan(received: number | bigint, expected: number | bigint) { const matcherName = 'toBeGreaterThan'; const isNot = this.isNot; const options: MatcherHintOptions = { @@ -257,11 +248,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toBeGreaterThanOrEqual( - this: MatcherState, - received: number | bigint, - expected: number | bigint, - ) { + toBeGreaterThanOrEqual(received: number | bigint, expected: number | bigint) { const matcherName = 'toBeGreaterThanOrEqual'; const isNot = this.isNot; const options: MatcherHintOptions = { @@ -281,7 +268,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toBeInstanceOf(this: MatcherState, received: any, expected: Function) { + toBeInstanceOf(received: any, expected: Function) { const matcherName = 'toBeInstanceOf'; const options: MatcherHintOptions = { isNot: this.isNot, @@ -331,11 +318,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toBeLessThan( - this: MatcherState, - received: number | bigint, - expected: number | bigint, - ) { + toBeLessThan(received: number | bigint, expected: number | bigint) { const matcherName = 'toBeLessThan'; const isNot = this.isNot; const options: MatcherHintOptions = { @@ -355,11 +338,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toBeLessThanOrEqual( - this: MatcherState, - received: number | bigint, - expected: number | bigint, - ) { + toBeLessThanOrEqual(received: number | bigint, expected: number | bigint) { const matcherName = 'toBeLessThanOrEqual'; const isNot = this.isNot; const options: MatcherHintOptions = { @@ -379,7 +358,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toBeNaN(this: MatcherState, received: any, expected: void) { + toBeNaN(received: any, expected: void) { const matcherName = 'toBeNaN'; const options: MatcherHintOptions = { isNot: this.isNot, @@ -397,7 +376,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toBeNull(this: MatcherState, received: unknown, expected: void) { + toBeNull(received: unknown, expected: void) { const matcherName = 'toBeNull'; const options: MatcherHintOptions = { isNot: this.isNot, @@ -415,7 +394,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toBeTruthy(this: MatcherState, received: unknown, expected: void) { + toBeTruthy(received: unknown, expected: void) { const matcherName = 'toBeTruthy'; const options: MatcherHintOptions = { isNot: this.isNot, @@ -433,7 +412,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toBeUndefined(this: MatcherState, received: unknown, expected: void) { + toBeUndefined(received: unknown, expected: void) { const matcherName = 'toBeUndefined'; const options: MatcherHintOptions = { isNot: this.isNot, @@ -451,11 +430,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toContain( - this: MatcherState, - received: ContainIterable | string, - expected: unknown, - ) { + toContain(received: ContainIterable | string, expected: unknown) { const matcherName = 'toContain'; const isNot = this.isNot; const options: MatcherHintOptions = { @@ -556,11 +531,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toContainEqual( - this: MatcherState, - received: ContainIterable, - expected: unknown, - ) { + toContainEqual(received: ContainIterable, expected: unknown) { const matcherName = 'toContainEqual'; const isNot = this.isNot; const options: MatcherHintOptions = { @@ -606,7 +577,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toEqual(this: MatcherState, received: unknown, expected: unknown) { + toEqual(received: unknown, expected: unknown) { const matcherName = 'toEqual'; const options: MatcherHintOptions = { comment: 'deep equality', @@ -641,7 +612,7 @@ const matchers: MatchersObject = { return {actual: received, expected, message, name: matcherName, pass}; }, - toHaveLength(this: MatcherState, received: any, expected: number) { + toHaveLength(received: any, expected: number) { const matcherName = 'toHaveLength'; const isNot = this.isNot; const options: MatcherHintOptions = { @@ -696,7 +667,6 @@ const matchers: MatchersObject = { }, toHaveProperty( - this: MatcherState, received: object, expectedPath: string | Array, expectedValue?: unknown, @@ -818,7 +788,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toMatch(this: MatcherState, received: string, expected: string | RegExp) { + toMatch(received: string, expected: string | RegExp) { const matcherName = 'toMatch'; const options: MatcherHintOptions = { isNot: this.isNot, @@ -893,7 +863,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toMatchObject(this: MatcherState, received: object, expected: object) { + toMatchObject(received: object, expected: object) { const matcherName = 'toMatchObject'; const options: MatcherHintOptions = { isNot: this.isNot, @@ -944,7 +914,7 @@ const matchers: MatchersObject = { return {message, pass}; }, - toStrictEqual(this: MatcherState, received: unknown, expected: unknown) { + toStrictEqual(received: unknown, expected: unknown) { const matcherName = 'toStrictEqual'; const options: MatcherHintOptions = { comment: 'deep equality', diff --git a/packages/expect/src/types.ts b/packages/expect/src/types.ts index 29e9df1dc352..0828eeca49a3 100644 --- a/packages/expect/src/types.ts +++ b/packages/expect/src/types.ts @@ -22,7 +22,12 @@ export type AsyncExpectationResult = Promise; export type ExpectationResult = SyncExpectationResult | AsyncExpectationResult; export type RawMatcherFn = { - (received: any, expected: any, options?: any): ExpectationResult; + ( + this: MatcherState, + received: any, + expected: any, + options?: any, + ): ExpectationResult; [INTERNAL_MATCHER_FLAG]?: boolean; }; From 02df7d321d28184741f00acefc94d8587a1d34ea Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Tue, 5 Oct 2021 16:21:42 +0200 Subject: [PATCH 10/17] fix: construct mather context for asymmetric matchers on demand (#11930) --- CHANGELOG.md | 2 +- packages/expect/src/asymmetricMatchers.ts | 46 +++++++++++------------ packages/expect/src/jestMatchersObject.ts | 10 +++-- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5377b630f12e..56daf793e58e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ### Fixes -- `[expect]` Pass matcher context to asymmetric matchers ([#11926](https://github.com/facebook/jest/pull/11926)) +- `[expect]` Pass matcher context to asymmetric matchers ([#11926](https://github.com/facebook/jest/pull/11926) & [#11930](https://github.com/facebook/jest/pull/11930)) - `[@jest/types]` Mark deprecated configuration options as `@deprecated` ([#11913](https://github.com/facebook/jest/pull/11913)) - `[jest-cli]` Improve `--help` printout by removing defunct `--browser` option ([#11914](https://github.com/facebook/jest/pull/11914)) - `[jest-haste-map]` Use distinct cache paths for different values of `computeDependencies` ([#11916](https://github.com/facebook/jest/pull/11916)) diff --git a/packages/expect/src/asymmetricMatchers.ts b/packages/expect/src/asymmetricMatchers.ts index 5d56358192bb..6533d2d3fb47 100644 --- a/packages/expect/src/asymmetricMatchers.ts +++ b/packages/expect/src/asymmetricMatchers.ts @@ -12,30 +12,28 @@ import {getState} from './jestMatchersObject'; import type {MatcherState} from './types'; import {iterableEquality, subsetEquality} from './utils'; -export class AsymmetricMatcher { - protected sample: T; - protected readonly matcherState: MatcherState; - $$typeof: symbol; - // TODO: remove this field in Jest 28 (use `matcherState`) - inverse?: boolean; +const utils = Object.freeze({ + ...matcherUtils, + iterableEquality, + subsetEquality, +}); - constructor(sample: T, isNot = false) { - this.$$typeof = Symbol.for('jest.asymmetricMatcher'); - this.sample = sample; +export abstract class AsymmetricMatcher { + $$typeof = Symbol.for('jest.asymmetricMatcher'); - const utils = {...matcherUtils, iterableEquality, subsetEquality}; + constructor(protected sample: T, protected inverse = false) {} - const matcherContext: MatcherState = { + protected getMatcherContext(): MatcherState { + return { ...getState(), equals, - isNot, + isNot: this.inverse, utils, }; - - this.inverse = matcherContext.isNot; - - this.matcherState = matcherContext; } + + abstract asymmetricMatch(other: unknown): boolean; + abstract toString(): string; } class Any extends AsymmetricMatcher { @@ -152,11 +150,11 @@ class ArrayContaining extends AsymmetricMatcher> { other.some(another => equals(item, another)), )); - return this.matcherState.isNot ? !result : result; + return this.inverse ? !result : result; } toString() { - return `Array${this.matcherState.isNot ? 'Not' : ''}Containing`; + return `Array${this.inverse ? 'Not' : ''}Containing`; } getExpectedType() { @@ -190,11 +188,11 @@ class ObjectContaining extends AsymmetricMatcher> { } } - return this.matcherState.isNot ? !result : result; + return this.inverse ? !result : result; } toString() { - return `Object${this.matcherState.isNot ? 'Not' : ''}Containing`; + return `Object${this.inverse ? 'Not' : ''}Containing`; } getExpectedType() { @@ -213,11 +211,11 @@ class StringContaining extends AsymmetricMatcher { asymmetricMatch(other: string) { const result = isA('String', other) && other.includes(this.sample); - return this.matcherState.isNot ? !result : result; + return this.inverse ? !result : result; } toString() { - return `String${this.matcherState.isNot ? 'Not' : ''}Containing`; + return `String${this.inverse ? 'Not' : ''}Containing`; } getExpectedType() { @@ -236,11 +234,11 @@ class StringMatching extends AsymmetricMatcher { asymmetricMatch(other: string) { const result = isA('String', other) && this.sample.test(other); - return this.matcherState.isNot ? !result : result; + return this.inverse ? !result : result; } toString() { - return `String${this.matcherState.isNot ? 'Not' : ''}Matching`; + return `String${this.inverse ? 'Not' : ''}Matching`; } getExpectedType() { diff --git a/packages/expect/src/jestMatchersObject.ts b/packages/expect/src/jestMatchersObject.ts index 68aa1bfd659e..c9fade8ae6ed 100644 --- a/packages/expect/src/jestMatchersObject.ts +++ b/packages/expect/src/jestMatchersObject.ts @@ -68,16 +68,16 @@ export const setMatchers = ( asymmetricMatch(other: unknown) { const {pass} = matcher.call( - this.matcherState, + this.getMatcherContext(), other, ...this.sample, ) as SyncExpectationResult; - return this.matcherState.isNot ? !pass : pass; + return this.inverse ? !pass : pass; } toString() { - return `${this.matcherState.isNot ? 'not.' : ''}${key}`; + return `${this.inverse ? 'not.' : ''}${key}`; } getExpectedType() { @@ -92,7 +92,9 @@ export const setMatchers = ( expect[key] = (...sample: [unknown, unknown]) => new CustomMatcher(false, ...sample); if (!expect.not) { - expect.not = {}; + throw new Error( + '`expect.not` is not defined - please report this bug to https://github.com/facebook/jest', + ); } expect.not[key] = (...sample: [unknown, unknown]) => new CustomMatcher(true, ...sample); From 508827c9ded625b38cd74a012539aa6740e33118 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Tue, 5 Oct 2021 17:30:40 +0200 Subject: [PATCH 11/17] fix(expect): make types better reflect reality (#11931) --- CHANGELOG.md | 1 + packages/expect/src/asymmetricMatchers.ts | 17 ++++-- packages/expect/src/index.ts | 17 +++--- packages/expect/src/jestMatchersObject.ts | 29 ++++++---- packages/expect/src/types.ts | 64 ++++++++++++++--------- test-types/top-level-globals.test.ts | 34 ++++++++++++ 6 files changed, 118 insertions(+), 44 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56daf793e58e..e6fc46417d28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Fixes - `[expect]` Pass matcher context to asymmetric matchers ([#11926](https://github.com/facebook/jest/pull/11926) & [#11930](https://github.com/facebook/jest/pull/11930)) +- `[expect]` Improve TypeScript types ([#11931](https://github.com/facebook/jest/pull/11931)) - `[@jest/types]` Mark deprecated configuration options as `@deprecated` ([#11913](https://github.com/facebook/jest/pull/11913)) - `[jest-cli]` Improve `--help` printout by removing defunct `--browser` option ([#11914](https://github.com/facebook/jest/pull/11914)) - `[jest-haste-map]` Use distinct cache paths for different values of `computeDependencies` ([#11916](https://github.com/facebook/jest/pull/11916)) diff --git a/packages/expect/src/asymmetricMatchers.ts b/packages/expect/src/asymmetricMatchers.ts index 6533d2d3fb47..c8d2dae00625 100644 --- a/packages/expect/src/asymmetricMatchers.ts +++ b/packages/expect/src/asymmetricMatchers.ts @@ -9,7 +9,10 @@ import * as matcherUtils from 'jest-matcher-utils'; import {equals, fnNameFor, hasProperty, isA, isUndefined} from './jasmineUtils'; import {getState} from './jestMatchersObject'; -import type {MatcherState} from './types'; +import type { + AsymmetricMatcher as AsymmetricMatcherInterface, + MatcherState, +} from './types'; import {iterableEquality, subsetEquality} from './utils'; const utils = Object.freeze({ @@ -18,22 +21,28 @@ const utils = Object.freeze({ subsetEquality, }); -export abstract class AsymmetricMatcher { +export abstract class AsymmetricMatcher< + T, + State extends MatcherState = MatcherState, +> implements AsymmetricMatcherInterface +{ $$typeof = Symbol.for('jest.asymmetricMatcher'); constructor(protected sample: T, protected inverse = false) {} - protected getMatcherContext(): MatcherState { + protected getMatcherContext(): State { return { ...getState(), equals, isNot: this.inverse, utils, - }; + } as State; } abstract asymmetricMatch(other: unknown): boolean; abstract toString(): string; + getExpectedType?(): string; + toAsymmetricMatcher?(): string; } class Any extends AsymmetricMatcher { diff --git a/packages/expect/src/index.ts b/packages/expect/src/index.ts index 9b86118551d2..9b779ddfea92 100644 --- a/packages/expect/src/index.ts +++ b/packages/expect/src/index.ts @@ -354,8 +354,9 @@ const makeThrowingMatcher = ( } }; -expect.extend = (matchers: MatchersObject): void => - setMatchers(matchers, false, expect); +expect.extend = ( + matchers: MatchersObject, +): void => setMatchers(matchers, false, expect); expect.anything = anything; expect.any = any; @@ -396,8 +397,10 @@ function assertions(expected: number) { Error.captureStackTrace(error, assertions); } - getState().expectedAssertionsNumber = expected; - getState().expectedAssertionsNumberError = error; + setState({ + expectedAssertionsNumber: expected, + expectedAssertionsNumberError: error, + }); } function hasAssertions(...args: Array) { const error = new Error(); @@ -406,8 +409,10 @@ function hasAssertions(...args: Array) { } matcherUtils.ensureNoExpected(args[0], '.hasAssertions'); - getState().isExpectingAssertions = true; - getState().isExpectingAssertionsError = error; + setState({ + isExpectingAssertions: true, + isExpectingAssertionsError: error, + }); } // add default jest matchers diff --git a/packages/expect/src/jestMatchersObject.ts b/packages/expect/src/jestMatchersObject.ts index c9fade8ae6ed..370802661c30 100644 --- a/packages/expect/src/jestMatchersObject.ts +++ b/packages/expect/src/jestMatchersObject.ts @@ -37,18 +37,21 @@ if (!global.hasOwnProperty(JEST_MATCHERS_OBJECT)) { }); } -export const getState = (): MatcherState => +export const getState = (): State => (global as any)[JEST_MATCHERS_OBJECT].state; -export const setState = (state: Partial): void => { +export const setState = ( + state: Partial, +): void => { Object.assign((global as any)[JEST_MATCHERS_OBJECT].state, state); }; -export const getMatchers = (): MatchersObject => - (global as any)[JEST_MATCHERS_OBJECT].matchers; +export const getMatchers = < + State extends MatcherState = MatcherState, +>(): MatchersObject => (global as any)[JEST_MATCHERS_OBJECT].matchers; -export const setMatchers = ( - matchers: MatchersObject, +export const setMatchers = ( + matchers: MatchersObject, isInternal: boolean, expect: Expect, ): void => { @@ -61,8 +64,14 @@ export const setMatchers = ( if (!isInternal) { // expect is defined - class CustomMatcher extends AsymmetricMatcher<[unknown, unknown]> { - constructor(inverse: boolean = false, ...sample: [unknown, unknown]) { + class CustomMatcher extends AsymmetricMatcher< + [unknown, ...Array], + State + > { + constructor( + inverse: boolean = false, + ...sample: [unknown, ...Array] + ) { super(sample, inverse); } @@ -89,14 +98,14 @@ export const setMatchers = ( } } - expect[key] = (...sample: [unknown, unknown]) => + expect[key] = (...sample: [unknown, ...Array]) => new CustomMatcher(false, ...sample); if (!expect.not) { throw new Error( '`expect.not` is not defined - please report this bug to https://github.com/facebook/jest', ); } - expect.not[key] = (...sample: [unknown, unknown]) => + expect.not[key] = (...sample: [unknown, ...Array]) => new CustomMatcher(true, ...sample); } }); diff --git a/packages/expect/src/types.ts b/packages/expect/src/types.ts index 0828eeca49a3..7642ebdccd62 100644 --- a/packages/expect/src/types.ts +++ b/packages/expect/src/types.ts @@ -21,13 +21,8 @@ export type AsyncExpectationResult = Promise; export type ExpectationResult = SyncExpectationResult | AsyncExpectationResult; -export type RawMatcherFn = { - ( - this: MatcherState, - received: any, - expected: any, - options?: any, - ): ExpectationResult; +export type RawMatcherFn = { + (this: T, received: any, expected: any, options?: any): ExpectationResult; [INTERNAL_MATCHER_FLAG]?: boolean; }; @@ -62,33 +57,54 @@ export type MatcherState = { }; }; -export type AsymmetricMatcher = Record; -export type MatchersObject = {[id: string]: RawMatcherFn}; +export interface AsymmetricMatcher { + asymmetricMatch(other: unknown): boolean; + toString(): string; + getExpectedType?(): string; + toAsymmetricMatcher?(): string; +} +export type MatchersObject = { + [id: string]: RawMatcherFn; +}; export type ExpectedAssertionsErrors = Array<{ actual: string | number; error: Error; expected: string; }>; -export type Expect = { - (actual: T): Matchers; - // TODO: this is added by test runners, not `expect` itself - addSnapshotSerializer(arg0: any): void; - assertions(arg0: number): void; - extend(arg0: any): void; - extractExpectedAssertionsErrors: () => ExpectedAssertionsErrors; - getState(): MatcherState; - hasAssertions(): void; - setState(state: Partial): void; - any(expectedObject: any): AsymmetricMatcher; - anything(): AsymmetricMatcher; +interface InverseAsymmetricMatchers { arrayContaining(sample: Array): AsymmetricMatcher; objectContaining(sample: Record): AsymmetricMatcher; stringContaining(expected: string): AsymmetricMatcher; stringMatching(expected: string | RegExp): AsymmetricMatcher; - [id: string]: AsymmetricMatcher; - not: {[id: string]: AsymmetricMatcher}; -}; +} + +interface AsymmetricMatchers extends InverseAsymmetricMatchers { + any(expectedObject: unknown): AsymmetricMatcher; + anything(): AsymmetricMatcher; +} + +// Should use interface merging somehow +interface ExtraAsymmetricMatchers { + // at least one argument is needed - that's probably wrong. Should allow `expect.toBeDivisibleBy2()` like `expect.anything()` + [id: string]: (...sample: [unknown, ...Array]) => AsymmetricMatcher; +} + +export type Expect = { + (actual: T): Matchers; + // TODO: this is added by test runners, not `expect` itself + addSnapshotSerializer(serializer: unknown): void; + assertions(numberOfAssertions: number): void; + // TODO: remove this `T extends` - should get from some interface merging + extend(matchers: MatchersObject): void; + extractExpectedAssertionsErrors: () => ExpectedAssertionsErrors; + getState(): State; + hasAssertions(): void; + setState(state: Partial): void; +} & AsymmetricMatchers & + ExtraAsymmetricMatchers & { + not: InverseAsymmetricMatchers & ExtraAsymmetricMatchers; + }; interface Constructable { new (...args: Array): unknown; diff --git a/test-types/top-level-globals.test.ts b/test-types/top-level-globals.test.ts index d37807961542..320aa875cfbb 100644 --- a/test-types/top-level-globals.test.ts +++ b/test-types/top-level-globals.test.ts @@ -14,6 +14,7 @@ import { beforeAll, beforeEach, describe, + expect, test, } from '@jest/globals'; import type {Global} from '@jest/types'; @@ -108,3 +109,36 @@ expectType(describe.only.each(testTable)(testName, fn)); expectType(describe.only.each(testTable)(testName, fn, timeout)); expectType(describe.skip.each(testTable)(testName, fn)); expectType(describe.skip.each(testTable)(testName, fn, timeout)); + +/// expect + +expectType(expect(2).toBe(2)); +expectType>(expect(2).resolves.toBe(2)); + +expectType(expect('Hello').toEqual(expect.any(String))); + +// this currently does not error due to `[id: string]` in ExtraAsymmetricMatchers - we should have nothing there and force people to use interface merging +// expectError(expect('Hello').toEqual(expect.not.any(Number))); + +expectType( + expect.extend({ + toBeDivisibleBy(actual: number, expected: number) { + expectType(this.isNot); + + const pass = actual % expected === 0; + const message = pass + ? () => + `expected ${this.utils.printReceived( + actual, + )} not to be divisible by ${expected}` + : () => + `expected ${this.utils.printReceived( + actual, + )} to be divisible by ${expected}`; + + return {message, pass}; + }, + }), +); + +// TODO: some way of calling `expect(4).toBeDivisbleBy(2)` and `expect.toBeDivisbleBy(2)` From e4201555c96bae1f5259683499c47b28ed48dbb6 Mon Sep 17 00:00:00 2001 From: mrazauskas <72159681+mrazauskas@users.noreply.github.com> Date: Tue, 5 Oct 2021 19:37:15 +0300 Subject: [PATCH 12/17] fix(expect): `toThrow` and `toThrowError` typings (#11929) --- CHANGELOG.md | 1 + packages/expect/src/types.ts | 8 ++------ test-types/top-level-globals.test.ts | 6 ++++++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6fc46417d28..d2ff2963d008 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - `[expect]` Pass matcher context to asymmetric matchers ([#11926](https://github.com/facebook/jest/pull/11926) & [#11930](https://github.com/facebook/jest/pull/11930)) - `[expect]` Improve TypeScript types ([#11931](https://github.com/facebook/jest/pull/11931)) +- `[expect]` Improve typings of `toThrow()` and `toThrowError()` matchers ([#11929](https://github.com/facebook/jest/pull/11929)) - `[@jest/types]` Mark deprecated configuration options as `@deprecated` ([#11913](https://github.com/facebook/jest/pull/11913)) - `[jest-cli]` Improve `--help` printout by removing defunct `--browser` option ([#11914](https://github.com/facebook/jest/pull/11914)) - `[jest-haste-map]` Use distinct cache paths for different values of `computeDependencies` ([#11916](https://github.com/facebook/jest/pull/11916)) diff --git a/packages/expect/src/types.ts b/packages/expect/src/types.ts index 7642ebdccd62..691941f87b18 100644 --- a/packages/expect/src/types.ts +++ b/packages/expect/src/types.ts @@ -106,10 +106,6 @@ export type Expect = { not: InverseAsymmetricMatchers & ExtraAsymmetricMatchers; }; -interface Constructable { - new (...args: Array): unknown; -} - // This is a copy from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/de6730f4463cba69904698035fafd906a72b9664/types/jest/index.d.ts#L570-L817 export interface Matchers { /** @@ -322,11 +318,11 @@ export interface Matchers { /** * Used to test that a function throws when it is called. */ - toThrow(error?: string | Constructable | RegExp | Error): R; + toThrow(error?: unknown): R; /** * If you want to test that a specific error is thrown inside a function. */ - toThrowError(error?: string | Constructable | RegExp | Error): R; + toThrowError(error?: unknown): R; /* TODO: START snapshot matchers are not from `expect`, the types should not be here */ /** diff --git a/test-types/top-level-globals.test.ts b/test-types/top-level-globals.test.ts index 320aa875cfbb..544cba2bef5c 100644 --- a/test-types/top-level-globals.test.ts +++ b/test-types/top-level-globals.test.ts @@ -115,6 +115,12 @@ expectType(describe.skip.each(testTable)(testName, fn, timeout)); expectType(expect(2).toBe(2)); expectType>(expect(2).resolves.toBe(2)); +expectType(expect(() => {}).toThrow()); +expectType(expect(() => {}).toThrow(/error/)); +expectType(expect(() => {}).toThrow('error')); +expectType(expect(() => {}).toThrow(Error)); +expectType(expect(() => {}).toThrow(new Error('error'))); + expectType(expect('Hello').toEqual(expect.any(String))); // this currently does not error due to `[id: string]` in ExtraAsymmetricMatchers - we should have nothing there and force people to use interface merging From 24f9bc86d06c20e1b318b7523871d9873d9979cc Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Tue, 5 Oct 2021 23:24:35 +0200 Subject: [PATCH 13/17] chore(expect): expose default matchers (#11932) --- CHANGELOG.md | 2 ++ packages/expect/package.json | 3 ++- scripts/buildUtils.js | 7 ++++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2ff2963d008..573ddf17f723 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ ### Chore & Maintenance +- `[expect]` Export default matchers ([#11932](https://github.com/facebook/jest/pull/11932)) + ### Performance ## 27.2.4 diff --git a/packages/expect/package.json b/packages/expect/package.json index f2b21358fa6f..c8da2ec46ea0 100644 --- a/packages/expect/package.json +++ b/packages/expect/package.json @@ -12,7 +12,8 @@ "exports": { ".": "./build/index.js", "./package.json": "./package.json", - "./build/utils": "./build/utils.js" + "./build/utils": "./build/utils.js", + "./build/matchers": "./build/matchers.js" }, "dependencies": { "@jest/types": "^27.2.4", diff --git a/scripts/buildUtils.js b/scripts/buildUtils.js index a8de3889814e..29f286e11f1e 100644 --- a/scripts/buildUtils.js +++ b/scripts/buildUtils.js @@ -52,7 +52,12 @@ module.exports.getPackages = function getPackages() { {}, ), ...(pkg.name === 'jest-circus' ? {'./runner': './runner.js'} : {}), - ...(pkg.name === 'expect' ? {'./build/utils': './build/utils.js'} : {}), + ...(pkg.name === 'expect' + ? { + './build/matchers': './build/matchers.js', + './build/utils': './build/utils.js', + } + : {}), }, `Package ${pkg.name} does not export correct files`, ); From cdc64c6691f5a8486bbba0f16364a828e6e110a1 Mon Sep 17 00:00:00 2001 From: Jan Kaifer Date: Wed, 6 Oct 2021 13:08:52 +0200 Subject: [PATCH 14/17] feat: warn when there are multiple configs (#11922) --- CHANGELOG.md | 2 + e2e/Utils.ts | 9 +- .../__snapshots__/multipleConfigs.ts.snap | 25 ++++++ e2e/__tests__/configOverride.test.ts | 24 +++++ e2e/__tests__/dependencyClash.test.ts | 2 +- e2e/__tests__/multipleConfigs.ts | 43 +++++++++ e2e/config-override/__tests__/test.js | 10 +++ e2e/config-override/different-config.json | 3 + e2e/config-override/jest.config.json | 3 + e2e/config-override/package.json | 3 + e2e/esm-config/cjs/package.json | 2 +- e2e/esm-config/mjs/package.json | 2 +- e2e/multiple-configs/__tests__/test.js | 10 +++ e2e/multiple-configs/jest.config.js | 10 +++ e2e/multiple-configs/jest.config.json | 3 + e2e/multiple-configs/package.json | 5 ++ .../src/__tests__/resolveConfigPath.test.ts | 88 ++++++++++++++++++- packages/jest-config/src/index.ts | 15 +++- packages/jest-config/src/resolveConfigPath.ts | 81 +++++++++++++++-- 19 files changed, 321 insertions(+), 19 deletions(-) create mode 100644 e2e/__tests__/__snapshots__/multipleConfigs.ts.snap create mode 100644 e2e/__tests__/configOverride.test.ts create mode 100644 e2e/__tests__/multipleConfigs.ts create mode 100644 e2e/config-override/__tests__/test.js create mode 100644 e2e/config-override/different-config.json create mode 100644 e2e/config-override/jest.config.json create mode 100644 e2e/config-override/package.json create mode 100644 e2e/multiple-configs/__tests__/test.js create mode 100644 e2e/multiple-configs/jest.config.js create mode 100644 e2e/multiple-configs/jest.config.json create mode 100644 e2e/multiple-configs/package.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 573ddf17f723..a87c2630548d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ### Features +- `[jest-config]` Warn when multiple Jest configs are located ([#11922](https://github.com/facebook/jest/pull/11922)) + ### Fixes - `[expect]` Pass matcher context to asymmetric matchers ([#11926](https://github.com/facebook/jest/pull/11926) & [#11930](https://github.com/facebook/jest/pull/11930)) diff --git a/e2e/Utils.ts b/e2e/Utils.ts index fd0a591dfa49..e5b44d1a74ca 100644 --- a/e2e/Utils.ts +++ b/e2e/Utils.ts @@ -176,7 +176,6 @@ interface JestPackageJson extends PackageJson { } const DEFAULT_PACKAGE_JSON: JestPackageJson = { - description: 'THIS IS AN AUTOGENERATED FILE AND SHOULD NOT BE ADDED TO GIT', jest: { testEnvironment: 'node', }, @@ -184,12 +183,16 @@ const DEFAULT_PACKAGE_JSON: JestPackageJson = { export const createEmptyPackage = ( directory: Config.Path, - packageJson = DEFAULT_PACKAGE_JSON, + packageJson: PackageJson = DEFAULT_PACKAGE_JSON, ) => { + const packageJsonWithDefaults = { + ...packageJson, + description: 'THIS IS AN AUTOGENERATED FILE AND SHOULD NOT BE ADDED TO GIT', + }; fs.mkdirSync(directory, {recursive: true}); fs.writeFileSync( path.resolve(directory, 'package.json'), - JSON.stringify(packageJson, null, 2), + JSON.stringify(packageJsonWithDefaults, null, 2), ); }; diff --git a/e2e/__tests__/__snapshots__/multipleConfigs.ts.snap b/e2e/__tests__/__snapshots__/multipleConfigs.ts.snap new file mode 100644 index 000000000000..ae086ee790db --- /dev/null +++ b/e2e/__tests__/__snapshots__/multipleConfigs.ts.snap @@ -0,0 +1,25 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`multiple configs will warn 1`] = ` +● Multiple configurations found: + * /e2e/multiple-configs/jest.config.js + * /e2e/multiple-configs/jest.config.json + * \`jest\` key in /e2e/multiple-configs/package.json + + Implicit config resolution does not allow multiple configuration files. + Either remove unused config files or select one explicitly with \`--config\`. + + Configuration Documentation: + https://jestjs.io/docs/configuration.html + +PASS Config from js file __tests__/test.js + ✓ dummy test +`; + +exports[`multiple configs will warn 2`] = ` +Test Suites: 1 passed, 1 total +Tests: 1 passed, 1 total +Snapshots: 0 total +Time: <> +Ran all test suites. +`; diff --git a/e2e/__tests__/configOverride.test.ts b/e2e/__tests__/configOverride.test.ts new file mode 100644 index 000000000000..0efb17551a6f --- /dev/null +++ b/e2e/__tests__/configOverride.test.ts @@ -0,0 +1,24 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import {getConfig} from '../runJest'; + +test('reads config from cjs file', () => { + const {configs} = getConfig( + 'config-override', + ['--config', 'different-config.json'], + { + skipPkgJsonCheck: true, + }, + ); + + expect(configs).toHaveLength(1); + expect(configs[0].displayName).toEqual({ + color: 'white', + name: 'Config from different-config.json file', + }); +}); diff --git a/e2e/__tests__/dependencyClash.test.ts b/e2e/__tests__/dependencyClash.test.ts index 87b9c81eee77..d6ea667631a1 100644 --- a/e2e/__tests__/dependencyClash.test.ts +++ b/e2e/__tests__/dependencyClash.test.ts @@ -18,7 +18,7 @@ const hasteImplModulePath = path beforeEach(() => { cleanup(tempDir); - createEmptyPackage(tempDir); + createEmptyPackage(tempDir, {}); }); // This test case is checking that when having both diff --git a/e2e/__tests__/multipleConfigs.ts b/e2e/__tests__/multipleConfigs.ts new file mode 100644 index 000000000000..305140510bc3 --- /dev/null +++ b/e2e/__tests__/multipleConfigs.ts @@ -0,0 +1,43 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * 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 {wrap} from 'jest-snapshot-serializer-raw'; +import slash = require('slash'); +import {extractSummary} from '../Utils'; +import runJest from '../runJest'; + +const MULTIPLE_CONFIGS_WARNING_TEXT = 'Multiple configurations found'; + +test('multiple configs will warn', () => { + const rootDir = slash(path.resolve(__dirname, '../..')); + const {exitCode, stderr} = runJest('multiple-configs', [], { + skipPkgJsonCheck: true, + }); + + expect(exitCode).toBe(0); + expect(stderr).toContain(MULTIPLE_CONFIGS_WARNING_TEXT); + + const cleanStdErr = stderr.replace(new RegExp(rootDir, 'g'), ''); + const {rest, summary} = extractSummary(cleanStdErr); + + expect(wrap(rest)).toMatchSnapshot(); + expect(wrap(summary)).toMatchSnapshot(); +}); + +test('multiple configs warning can be suppressed by using --config', () => { + const {exitCode, stderr} = runJest( + 'multiple-configs', + ['--config', 'jest.config.json'], + { + skipPkgJsonCheck: true, + }, + ); + + expect(exitCode).toBe(0); + expect(stderr).not.toContain(MULTIPLE_CONFIGS_WARNING_TEXT); +}); diff --git a/e2e/config-override/__tests__/test.js b/e2e/config-override/__tests__/test.js new file mode 100644 index 000000000000..2b4a7ced6f45 --- /dev/null +++ b/e2e/config-override/__tests__/test.js @@ -0,0 +1,10 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +test('dummy test', () => { + expect(1).toBe(1); +}); diff --git a/e2e/config-override/different-config.json b/e2e/config-override/different-config.json new file mode 100644 index 000000000000..707a2314b2f1 --- /dev/null +++ b/e2e/config-override/different-config.json @@ -0,0 +1,3 @@ +{ + "displayName": "Config from different-config.json file" +} diff --git a/e2e/config-override/jest.config.json b/e2e/config-override/jest.config.json new file mode 100644 index 000000000000..ac2653d362cb --- /dev/null +++ b/e2e/config-override/jest.config.json @@ -0,0 +1,3 @@ +{ + "displayName": "Config from json file" +} diff --git a/e2e/config-override/package.json b/e2e/config-override/package.json new file mode 100644 index 000000000000..fecde4600298 --- /dev/null +++ b/e2e/config-override/package.json @@ -0,0 +1,3 @@ +{ + "name": "config-override" +} diff --git a/e2e/esm-config/cjs/package.json b/e2e/esm-config/cjs/package.json index 586d4ca6b75c..d9f70a793cd8 100644 --- a/e2e/esm-config/cjs/package.json +++ b/e2e/esm-config/cjs/package.json @@ -1,3 +1,3 @@ { - "jest": {} + "name": "cjs-config" } diff --git a/e2e/esm-config/mjs/package.json b/e2e/esm-config/mjs/package.json index 586d4ca6b75c..e230b9436a74 100644 --- a/e2e/esm-config/mjs/package.json +++ b/e2e/esm-config/mjs/package.json @@ -1,3 +1,3 @@ { - "jest": {} + "name": "mjs-config" } diff --git a/e2e/multiple-configs/__tests__/test.js b/e2e/multiple-configs/__tests__/test.js new file mode 100644 index 000000000000..2b4a7ced6f45 --- /dev/null +++ b/e2e/multiple-configs/__tests__/test.js @@ -0,0 +1,10 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +test('dummy test', () => { + expect(1).toBe(1); +}); diff --git a/e2e/multiple-configs/jest.config.js b/e2e/multiple-configs/jest.config.js new file mode 100644 index 000000000000..a2876a6ef5e6 --- /dev/null +++ b/e2e/multiple-configs/jest.config.js @@ -0,0 +1,10 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +module.exports = { + displayName: 'Config from js file', +}; diff --git a/e2e/multiple-configs/jest.config.json b/e2e/multiple-configs/jest.config.json new file mode 100644 index 000000000000..ac2653d362cb --- /dev/null +++ b/e2e/multiple-configs/jest.config.json @@ -0,0 +1,3 @@ +{ + "displayName": "Config from json file" +} diff --git a/e2e/multiple-configs/package.json b/e2e/multiple-configs/package.json new file mode 100644 index 000000000000..46e3ee413cc7 --- /dev/null +++ b/e2e/multiple-configs/package.json @@ -0,0 +1,5 @@ +{ + "jest": { + "displayName": "Config from package.json file" + } +} diff --git a/packages/jest-config/src/__tests__/resolveConfigPath.test.ts b/packages/jest-config/src/__tests__/resolveConfigPath.test.ts index 10c45675498d..96db06c9213b 100644 --- a/packages/jest-config/src/__tests__/resolveConfigPath.test.ts +++ b/packages/jest-config/src/__tests__/resolveConfigPath.test.ts @@ -14,6 +14,17 @@ import resolveConfigPath from '../resolveConfigPath'; const DIR = path.resolve(tmpdir(), 'resolve_config_path_test'); const ERROR_PATTERN = /Could not find a config file based on provided values/; const NO_ROOT_DIR_ERROR_PATTERN = /Can't find a root directory/; +const MULTIPLE_CONFIGS_ERROR_PATTERN = /Multiple configurations found/; + +const mockConsoleWarn = () => { + jest.spyOn(console, 'warn'); + const mockedConsoleWarn = console.warn as jest.Mock>; + + // We will mock console.warn because it would produce a lot of noise in the tests + mockedConsoleWarn.mockImplementation(() => {}); + + return mockedConsoleWarn; +}; beforeEach(() => cleanup(DIR)); afterEach(() => cleanup(DIR)); @@ -45,6 +56,8 @@ describe.each(JEST_CONFIG_EXT_ORDER.slice(0))( }); test(`directory path with "${extension}"`, () => { + const mockedConsoleWarn = mockConsoleWarn(); + const relativePackageJsonPath = 'a/b/c/package.json'; const absolutePackageJsonPath = path.resolve( DIR, @@ -53,9 +66,9 @@ describe.each(JEST_CONFIG_EXT_ORDER.slice(0))( const relativeJestConfigPath = `a/b/c/jest.config${extension}`; const absoluteJestConfigPath = path.resolve(DIR, relativeJestConfigPath); + // no configs yet. should throw writeFiles(DIR, {[`a/b/c/some_random_file${extension}`]: ''}); - // no configs yet. should throw expect(() => // absolute resolveConfigPath(path.dirname(absoluteJestConfigPath), DIR), @@ -68,6 +81,7 @@ describe.each(JEST_CONFIG_EXT_ORDER.slice(0))( writeFiles(DIR, {[relativePackageJsonPath]: ''}); + mockedConsoleWarn.mockClear(); // absolute expect( resolveConfigPath(path.dirname(absolutePackageJsonPath), DIR), @@ -77,20 +91,45 @@ describe.each(JEST_CONFIG_EXT_ORDER.slice(0))( expect( resolveConfigPath(path.dirname(relativePackageJsonPath), DIR), ).toBe(absolutePackageJsonPath); + expect(mockedConsoleWarn).not.toBeCalled(); + // jest.config.js takes precedence writeFiles(DIR, {[relativeJestConfigPath]: ''}); - // jest.config.js takes precedence + mockedConsoleWarn.mockClear(); + // absolute + expect( + resolveConfigPath(path.dirname(absolutePackageJsonPath), DIR), + ).toBe(absoluteJestConfigPath); + + // relative + expect( + resolveConfigPath(path.dirname(relativePackageJsonPath), DIR), + ).toBe(absoluteJestConfigPath); + expect(mockedConsoleWarn).not.toBeCalled(); + + // jest.config.js and package.json with 'jest' cannot be used together + writeFiles(DIR, {[relativePackageJsonPath]: JSON.stringify({jest: {}})}); // absolute + mockedConsoleWarn.mockClear(); expect( resolveConfigPath(path.dirname(absolutePackageJsonPath), DIR), ).toBe(absoluteJestConfigPath); + expect(mockedConsoleWarn).toBeCalledTimes(1); + expect(mockedConsoleWarn.mock.calls[0].join()).toMatch( + MULTIPLE_CONFIGS_ERROR_PATTERN, + ); // relative + mockedConsoleWarn.mockClear(); expect( resolveConfigPath(path.dirname(relativePackageJsonPath), DIR), ).toBe(absoluteJestConfigPath); + expect(mockedConsoleWarn).toBeCalledTimes(1); + expect(mockedConsoleWarn.mock.calls[0].join()).toMatch( + MULTIPLE_CONFIGS_ERROR_PATTERN, + ); expect(() => { resolveConfigPath( @@ -101,3 +140,48 @@ describe.each(JEST_CONFIG_EXT_ORDER.slice(0))( }); }, ); + +const pickPairsWithSameOrder = (array: ReadonlyArray) => + array + .map((value1, idx, arr) => + arr.slice(idx + 1).map(value2 => [value1, value2]), + ) + // TODO: use .flat() when we drop Node 10 + .reduce((acc, val) => acc.concat(val), []); + +test('pickPairsWithSameOrder', () => { + expect(pickPairsWithSameOrder([1, 2, 3])).toStrictEqual([ + [1, 2], + [1, 3], + [2, 3], + ]); +}); + +describe.each(pickPairsWithSameOrder(JEST_CONFIG_EXT_ORDER))( + 'Using multiple configs shows warning', + (extension1, extension2) => { + test(`Using jest.config${extension1} and jest.config${extension2} shows warning`, () => { + const mockedConsoleWarn = mockConsoleWarn(); + + const relativeJestConfigPaths = [ + `a/b/c/jest.config${extension1}`, + `a/b/c/jest.config${extension2}`, + ]; + + writeFiles(DIR, { + [relativeJestConfigPaths[0]]: '', + [relativeJestConfigPaths[1]]: '', + }); + + // multiple configs here, should print warning + mockedConsoleWarn.mockClear(); + expect( + resolveConfigPath(path.dirname(relativeJestConfigPaths[0]), DIR), + ).toBe(path.resolve(DIR, relativeJestConfigPaths[0])); + expect(mockedConsoleWarn).toBeCalledTimes(1); + expect(mockedConsoleWarn.mock.calls[0].join()).toMatch( + MULTIPLE_CONFIGS_ERROR_PATTERN, + ); + }); + }, +); diff --git a/packages/jest-config/src/index.ts b/packages/jest-config/src/index.ts index 364346ecf954..f9b4c8456218 100644 --- a/packages/jest-config/src/index.ts +++ b/packages/jest-config/src/index.ts @@ -44,6 +44,7 @@ export async function readConfig( skipArgvConfigOption?: boolean, parentConfigDirname?: Config.Path | null, projectIndex: number = Infinity, + skipMultipleConfigWarning = false, ): Promise { let rawOptions: Config.InitialOptions; let configPath = null; @@ -77,11 +78,19 @@ export async function readConfig( // A string passed to `--config`, which is either a direct path to the config // or a path to directory containing `package.json`, `jest.config.js` or `jest.config.ts` } else if (!skipArgvConfigOption && typeof argv.config == 'string') { - configPath = resolveConfigPath(argv.config, process.cwd()); + configPath = resolveConfigPath( + argv.config, + process.cwd(), + skipMultipleConfigWarning, + ); rawOptions = await readConfigFileAndSetRootDir(configPath); } else { // Otherwise just try to find config in the current rootDir. - configPath = resolveConfigPath(packageRootOrConfig, process.cwd()); + configPath = resolveConfigPath( + packageRootOrConfig, + process.cwd(), + skipMultipleConfigWarning, + ); rawOptions = await readConfigFileAndSetRootDir(configPath); } @@ -332,6 +341,8 @@ export async function readConfigs( skipArgvConfigOption, configPath ? path.dirname(configPath) : cwd, projectIndex, + // we wanna skip the warning if this is the "main" project + projectIsCwd, ); }), ); diff --git a/packages/jest-config/src/resolveConfigPath.ts b/packages/jest-config/src/resolveConfigPath.ts index dc8655513858..0f1439197a36 100644 --- a/packages/jest-config/src/resolveConfigPath.ts +++ b/packages/jest-config/src/resolveConfigPath.ts @@ -6,7 +6,9 @@ */ import * as path from 'path'; +import chalk = require('chalk'); import * as fs from 'graceful-fs'; +import slash = require('slash'); import type {Config} from '@jest/types'; import { JEST_CONFIG_BASE_NAME, @@ -19,7 +21,11 @@ const isFile = (filePath: Config.Path) => const getConfigFilename = (ext: string) => JEST_CONFIG_BASE_NAME + ext; -export default (pathToResolve: Config.Path, cwd: Config.Path): Config.Path => { +export default ( + pathToResolve: Config.Path, + cwd: Config.Path, + skipMultipleConfigWarning = false, +): Config.Path => { if (!path.isAbsolute(cwd)) { throw new Error(`"cwd" must be an absolute path. cwd: ${cwd}`); } @@ -49,24 +55,35 @@ export default (pathToResolve: Config.Path, cwd: Config.Path): Config.Path => { ); } - return resolveConfigPathByTraversing(absolutePath, pathToResolve, cwd); + return resolveConfigPathByTraversing( + absolutePath, + pathToResolve, + cwd, + skipMultipleConfigWarning, + ); }; const resolveConfigPathByTraversing = ( pathToResolve: Config.Path, initialPath: Config.Path, cwd: Config.Path, + skipMultipleConfigWarning: boolean, ): Config.Path => { - const jestConfig = JEST_CONFIG_EXT_ORDER.map(ext => + const configFiles = JEST_CONFIG_EXT_ORDER.map(ext => path.resolve(pathToResolve, getConfigFilename(ext)), - ).find(isFile); - if (jestConfig) { - return jestConfig; + ).filter(isFile); + + const packageJson = findPackageJson(pathToResolve); + if (packageJson && hasPackageJsonJestKey(packageJson)) { + configFiles.push(packageJson); + } + + if (!skipMultipleConfigWarning && configFiles.length > 1) { + console.warn(makeMultipleConfigsWarning(configFiles)); } - const packageJson = path.resolve(pathToResolve, PACKAGE_JSON); - if (isFile(packageJson)) { - return packageJson; + if (configFiles.length > 0 || packageJson) { + return configFiles[0] ?? packageJson; } // This is the system root. @@ -80,9 +97,29 @@ const resolveConfigPathByTraversing = ( path.dirname(pathToResolve), initialPath, cwd, + skipMultipleConfigWarning, ); }; +const findPackageJson = (pathToResolve: Config.Path) => { + const packagePath = path.resolve(pathToResolve, PACKAGE_JSON); + if (isFile(packagePath)) { + return packagePath; + } + + return undefined; +}; + +const hasPackageJsonJestKey = (packagePath: Config.Path) => { + const content = fs.readFileSync(packagePath, 'utf8'); + try { + return 'jest' in JSON.parse(content); + } catch { + // If package is not a valid JSON + return false; + } +}; + const makeResolutionErrorMessage = ( initialPath: Config.Path, cwd: Config.Path, @@ -95,3 +132,29 @@ const makeResolutionErrorMessage = ( `traverse directory tree up, until it finds one of those files in exact order: ${JEST_CONFIG_EXT_ORDER.map( ext => `"${getConfigFilename(ext)}"`, ).join(' or ')}.`; + +function extraIfPackageJson(configPath: Config.Path) { + if (configPath.endsWith(PACKAGE_JSON)) { + return '`jest` key in '; + } + + return ''; +} + +const makeMultipleConfigsWarning = (configPaths: Array) => + chalk.yellow( + [ + chalk.bold('\u25cf Multiple configurations found:'), + ...configPaths.map( + configPath => + ` * ${extraIfPackageJson(configPath)}${slash(configPath)}`, + ), + '', + ' Implicit config resolution does not allow multiple configuration files.', + ' Either remove unused config files or select one explicitly with `--config`.', + '', + ' Configuration Documentation:', + ' https://jestjs.io/docs/configuration.html', + '', + ].join('\n'), + ); From 7f881af0bf1bb8afca7471723009ee2394143903 Mon Sep 17 00:00:00 2001 From: Conrad Buck Date: Fri, 8 Oct 2021 06:30:38 -0700 Subject: [PATCH 15/17] fix(reporters): verbose reporter should not buffer writes (#11054) --- .vscode/settings.json | 2 -- CHANGELOG.md | 1 + .../consoleDebugging.test.ts.snap | 22 +++++++++++++++ e2e/__tests__/consoleDebugging.test.ts | 23 ++++++++++++++++ .../__tests__/console-debugging.test.js | 27 +++++++++++++++++++ e2e/console-debugging/jest.config.js | 14 ++++++++++ e2e/console-debugging/package.json | 1 + e2e/console-debugging/stdout-spy.js | 26 ++++++++++++++++++ packages/jest-reporters/package.json | 1 + .../jest-reporters/src/DefaultReporter.ts | 24 +++++++++-------- .../jest-reporters/src/VerboseReporter.ts | 15 +++++++++++ yarn.lock | 1 + 12 files changed, 144 insertions(+), 13 deletions(-) create mode 100644 e2e/__tests__/__snapshots__/consoleDebugging.test.ts.snap create mode 100644 e2e/__tests__/consoleDebugging.test.ts create mode 100644 e2e/console-debugging/__tests__/console-debugging.test.js create mode 100644 e2e/console-debugging/jest.config.js create mode 100644 e2e/console-debugging/package.json create mode 100644 e2e/console-debugging/stdout-spy.js diff --git a/.vscode/settings.json b/.vscode/settings.json index 0dcce386c953..bb5f7b2d11d9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,8 +2,6 @@ "editor.rulers": [80], "files.exclude": { "**/.git": true, - "**/node_modules": true, - "**/build": true }, "javascript.validate.enable": false, "jest.pathToJest": "yarn jest --", diff --git a/CHANGELOG.md b/CHANGELOG.md index a87c2630548d..a88344c3876b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ - `[@jest/types]` Mark deprecated configuration options as `@deprecated` ([#11913](https://github.com/facebook/jest/pull/11913)) - `[jest-cli]` Improve `--help` printout by removing defunct `--browser` option ([#11914](https://github.com/facebook/jest/pull/11914)) - `[jest-haste-map]` Use distinct cache paths for different values of `computeDependencies` ([#11916](https://github.com/facebook/jest/pull/11916)) +- `[@jest/reporters]` Do not buffer `console.log`s when using verbose reporter [#11054](https://github.com/facebook/jest/pull/11054) ### Chore & Maintenance diff --git a/e2e/__tests__/__snapshots__/consoleDebugging.test.ts.snap b/e2e/__tests__/__snapshots__/consoleDebugging.test.ts.snap new file mode 100644 index 000000000000..9b6414ff5b70 --- /dev/null +++ b/e2e/__tests__/__snapshots__/consoleDebugging.test.ts.snap @@ -0,0 +1,22 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`console debugging with --verbose 1`] = ` + console.log + test + + at Object.log (__tests__/console-debugging.test.js:17:11) + +`; + +exports[`console debugging with --verbose 2`] = ` +PASS __tests__/console-debugging.test.js + ✓ verbose mode prints console output synchronously +`; + +exports[`console debugging with --verbose 3`] = ` +Test Suites: 1 passed, 1 total +Tests: 1 passed, 1 total +Snapshots: 1 passed, 1 total +Time: <> +Ran all test suites. +`; diff --git a/e2e/__tests__/consoleDebugging.test.ts b/e2e/__tests__/consoleDebugging.test.ts new file mode 100644 index 000000000000..4aca32566208 --- /dev/null +++ b/e2e/__tests__/consoleDebugging.test.ts @@ -0,0 +1,23 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import {wrap} from 'jest-snapshot-serializer-raw'; +import {extractSummary} from '../Utils'; +import runJest from '../runJest'; + +test('console debugging with --verbose', () => { + const {stderr, stdout, exitCode} = runJest('console-debugging', [ + '--noStackTrace', + '--no-cache', + ]); + const {summary, rest} = extractSummary(stderr); + + expect(exitCode).toBe(0); + expect(wrap(stdout)).toMatchSnapshot(); + expect(wrap(rest)).toMatchSnapshot(); + expect(wrap(summary)).toMatchSnapshot(); +}); diff --git a/e2e/console-debugging/__tests__/console-debugging.test.js b/e2e/console-debugging/__tests__/console-debugging.test.js new file mode 100644 index 000000000000..9d801e87b6c5 --- /dev/null +++ b/e2e/console-debugging/__tests__/console-debugging.test.js @@ -0,0 +1,27 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +const stdoutWrite = require('../stdout-spy'); + +process.stdout.write = jest.fn(process.stdout.write); + +test('verbose mode prints console output synchronously', () => { + // test only works consistently without tty + expect(process.stdout.isTTY).not.toBe(true); + + console.log('test'); + + expect(stdoutWrite.text).toMatchInlineSnapshot(` + " console.log + test + + at Object.log (__tests__/console-debugging.test.js:17:11) + + " + `); +}); diff --git a/e2e/console-debugging/jest.config.js b/e2e/console-debugging/jest.config.js new file mode 100644 index 000000000000..87ce2c88899b --- /dev/null +++ b/e2e/console-debugging/jest.config.js @@ -0,0 +1,14 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +require('./stdout-spy'); + +module.exports = { + testEnvironment: 'node', + verbose: true, +}; diff --git a/e2e/console-debugging/package.json b/e2e/console-debugging/package.json new file mode 100644 index 000000000000..0967ef424bce --- /dev/null +++ b/e2e/console-debugging/package.json @@ -0,0 +1 @@ +{} diff --git a/e2e/console-debugging/stdout-spy.js b/e2e/console-debugging/stdout-spy.js new file mode 100644 index 000000000000..737acf1f4678 --- /dev/null +++ b/e2e/console-debugging/stdout-spy.js @@ -0,0 +1,26 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +const originalStdoutWrite = process.stdout.write.bind(process.stdout); + +global.process.__stdoutWriteMock = global.process.__stdoutWriteMock || null; + +/* + This is a terrible hack to ensure that we monkeyPath stdoutWrite before + the jest reporter does... +*/ +if (!global.process.__stdoutWriteMock) { + global.process.__stdoutWriteMock = (...args) => { + global.process.__stdoutWriteMock.text = args[0]; + originalStdoutWrite(...args); + }; + + process.stdout.write = global.process.__stdoutWriteMock; +} + +module.exports = global.process.__stdoutWriteMock; diff --git a/packages/jest-reporters/package.json b/packages/jest-reporters/package.json index dd0886f9dd53..ee4bf4712ba7 100644 --- a/packages/jest-reporters/package.json +++ b/packages/jest-reporters/package.json @@ -14,6 +14,7 @@ "@jest/test-result": "^27.2.4", "@jest/transform": "^27.2.4", "@jest/types": "^27.2.4", + "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", diff --git a/packages/jest-reporters/src/DefaultReporter.ts b/packages/jest-reporters/src/DefaultReporter.ts index 77b1fbe94b46..d9aeee5b210a 100644 --- a/packages/jest-reporters/src/DefaultReporter.ts +++ b/packages/jest-reporters/src/DefaultReporter.ts @@ -43,16 +43,18 @@ export default class DefaultReporter extends BaseReporter { this._err = process.stderr.write.bind(process.stderr); this._status = new Status(); this._bufferedOutput = new Set(); - this._wrapStdio(process.stdout); - this._wrapStdio(process.stderr); + this.__wrapStdio(process.stdout); + this.__wrapStdio(process.stderr); this._status.onChange(() => { - this._clearStatus(); - this._printStatus(); + this.__clearStatus(); + this.__printStatus(); }); } - private _wrapStdio(stream: NodeJS.WritableStream | NodeJS.WriteStream) { - const originalWrite = stream.write; + protected __wrapStdio( + stream: NodeJS.WritableStream | NodeJS.WriteStream, + ): void { + const write = stream.write.bind(stream); let buffer: Array = []; let timeout: NodeJS.Timeout | null = null; @@ -62,11 +64,11 @@ export default class DefaultReporter extends BaseReporter { buffer = []; // This is to avoid conflicts between random output and status text - this._clearStatus(); + this.__clearStatus(); if (string) { - originalWrite.call(stream, string); + write(string); } - this._printStatus(); + this.__printStatus(); this._bufferedOutput.delete(flushBufferedOutput); }; @@ -103,7 +105,7 @@ export default class DefaultReporter extends BaseReporter { } } - private _clearStatus() { + protected __clearStatus(): void { if (isInteractive) { if (this._globalConfig.useStderr) { this._err(this._clear); @@ -113,7 +115,7 @@ export default class DefaultReporter extends BaseReporter { } } - private _printStatus() { + protected __printStatus(): void { const {content, clear} = this._status.get(); this._clear = clear; if (isInteractive) { diff --git a/packages/jest-reporters/src/VerboseReporter.ts b/packages/jest-reporters/src/VerboseReporter.ts index 5d7de322f330..dfe5901ef7bd 100644 --- a/packages/jest-reporters/src/VerboseReporter.ts +++ b/packages/jest-reporters/src/VerboseReporter.ts @@ -29,6 +29,21 @@ export default class VerboseReporter extends DefaultReporter { this._globalConfig = globalConfig; } + // Verbose mode is for debugging. Buffering of output is undesirable. + // See https://github.com/facebook/jest/issues/8208 + protected __wrapStdio( + stream: NodeJS.WritableStream | NodeJS.WriteStream, + ): void { + const write = stream.write.bind(stream); + + stream.write = (chunk: string) => { + this.__clearStatus(); + write(chunk); + this.__printStatus(); + return true; + }; + } + static filterTestResults( testResults: Array, ): Array { diff --git a/yarn.lock b/yarn.lock index 94e28baf81a6..7996e76ba4e0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2654,6 +2654,7 @@ __metadata: "@types/istanbul-lib-report": ^3.0.0 "@types/istanbul-lib-source-maps": ^4.0.0 "@types/istanbul-reports": ^3.0.0 + "@types/node": "*" "@types/node-notifier": ^8.0.0 chalk: ^4.0.0 collect-v8-coverage: ^1.0.0 From 9dd65c911dbda7b2ad99e2232bbea5858377d56f Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Fri, 8 Oct 2021 15:33:18 +0200 Subject: [PATCH 16/17] chore: update changelog for release --- CHANGELOG.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a88344c3876b..1be550ab902c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,16 @@ ### Features +### Fixes + +### Chore & Maintenance + +### Performance + +## 27.2.5 + +### Features + - `[jest-config]` Warn when multiple Jest configs are located ([#11922](https://github.com/facebook/jest/pull/11922)) ### Fixes @@ -9,14 +19,14 @@ - `[expect]` Pass matcher context to asymmetric matchers ([#11926](https://github.com/facebook/jest/pull/11926) & [#11930](https://github.com/facebook/jest/pull/11930)) - `[expect]` Improve TypeScript types ([#11931](https://github.com/facebook/jest/pull/11931)) - `[expect]` Improve typings of `toThrow()` and `toThrowError()` matchers ([#11929](https://github.com/facebook/jest/pull/11929)) -- `[@jest/types]` Mark deprecated configuration options as `@deprecated` ([#11913](https://github.com/facebook/jest/pull/11913)) - `[jest-cli]` Improve `--help` printout by removing defunct `--browser` option ([#11914](https://github.com/facebook/jest/pull/11914)) - `[jest-haste-map]` Use distinct cache paths for different values of `computeDependencies` ([#11916](https://github.com/facebook/jest/pull/11916)) -- `[@jest/reporters]` Do not buffer `console.log`s when using verbose reporter [#11054](https://github.com/facebook/jest/pull/11054) +- `[@jest/reporters]` Do not buffer `console.log`s when using verbose reporter ([#11054](https://github.com/facebook/jest/pull/11054)) ### Chore & Maintenance - `[expect]` Export default matchers ([#11932](https://github.com/facebook/jest/pull/11932)) +- `[@jest/types]` Mark deprecated configuration options as `@deprecated` ([#11913](https://github.com/facebook/jest/pull/11913)) ### Performance From 251b8014e8e3ac8da2fca88b5a1bc401f3b92326 Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Fri, 8 Oct 2021 15:39:13 +0200 Subject: [PATCH 17/17] v27.2.5 --- lerna.json | 2 +- packages/babel-jest/package.json | 8 ++-- packages/expect/package.json | 10 ++--- packages/jest-changed-files/package.json | 4 +- packages/jest-circus/package.json | 26 ++++++------ packages/jest-cli/package.json | 16 ++++---- packages/jest-config/package.json | 26 ++++++------ packages/jest-console/package.json | 10 ++--- packages/jest-core/package.json | 40 +++++++++---------- .../package.json | 6 +-- packages/jest-diff/package.json | 6 +-- packages/jest-each/package.json | 8 ++-- packages/jest-environment-jsdom/package.json | 14 +++---- packages/jest-environment-node/package.json | 14 +++---- packages/jest-environment/package.json | 8 ++-- packages/jest-fake-timers/package.json | 10 ++--- packages/jest-globals/package.json | 8 ++-- packages/jest-haste-map/package.json | 10 ++--- packages/jest-jasmine2/package.json | 24 +++++------ packages/jest-leak-detector/package.json | 4 +- packages/jest-matcher-utils/package.json | 8 ++-- packages/jest-message-util/package.json | 6 +-- packages/jest-mock/package.json | 4 +- packages/jest-phabricator/package.json | 4 +- packages/jest-repl/package.json | 20 +++++----- packages/jest-reporters/package.json | 20 +++++----- .../jest-resolve-dependencies/package.json | 14 +++---- packages/jest-resolve/package.json | 10 ++--- packages/jest-runner/package.json | 32 +++++++-------- packages/jest-runtime/package.json | 34 ++++++++-------- packages/jest-snapshot/package.json | 24 +++++------ packages/jest-test-result/package.json | 6 +-- packages/jest-test-sequencer/package.json | 8 ++-- packages/jest-transform/package.json | 10 ++--- packages/jest-types/package.json | 2 +- packages/jest-util/package.json | 4 +- packages/jest-validate/package.json | 6 +-- packages/jest-watcher/package.json | 8 ++-- packages/jest-worker/package.json | 4 +- packages/jest/package.json | 6 +-- packages/pretty-format/package.json | 6 +-- packages/test-utils/package.json | 6 +-- 42 files changed, 248 insertions(+), 248 deletions(-) diff --git a/lerna.json b/lerna.json index 68ea24c23445..68b72cd6e698 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "27.2.4", + "version": "27.2.5", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/babel-jest/package.json b/packages/babel-jest/package.json index e3c557c3f8c4..1db2fc0f7ce5 100644 --- a/packages/babel-jest/package.json +++ b/packages/babel-jest/package.json @@ -1,7 +1,7 @@ { "name": "babel-jest", "description": "Jest plugin to use babel for transformation.", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -15,8 +15,8 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/transform": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/transform": "^27.2.5", + "@jest/types": "^27.2.5", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.0.0", "babel-preset-jest": "^27.2.0", @@ -26,7 +26,7 @@ }, "devDependencies": { "@babel/core": "^7.1.0", - "@jest/test-utils": "^27.2.4", + "@jest/test-utils": "^27.2.5", "@types/graceful-fs": "^4.1.3" }, "peerDependencies": { diff --git a/packages/expect/package.json b/packages/expect/package.json index c8da2ec46ea0..3247dabeb7a8 100644 --- a/packages/expect/package.json +++ b/packages/expect/package.json @@ -1,6 +1,6 @@ { "name": "expect", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -16,15 +16,15 @@ "./build/matchers": "./build/matchers.js" }, "dependencies": { - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "ansi-styles": "^5.0.0", "jest-get-type": "^27.0.6", - "jest-matcher-utils": "^27.2.4", - "jest-message-util": "^27.2.4", + "jest-matcher-utils": "^27.2.5", + "jest-message-util": "^27.2.5", "jest-regex-util": "^27.0.6" }, "devDependencies": { - "@jest/test-utils": "^27.2.4", + "@jest/test-utils": "^27.2.5", "chalk": "^4.0.0", "fast-check": "^2.0.0", "immutable": "^4.0.0-rc.12" diff --git a/packages/jest-changed-files/package.json b/packages/jest-changed-files/package.json index 2b1979d352ce..2d6985ee9762 100644 --- a/packages/jest-changed-files/package.json +++ b/packages/jest-changed-files/package.json @@ -1,6 +1,6 @@ { "name": "jest-changed-files", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,7 +14,7 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "execa": "^5.0.0", "throat": "^6.0.1" }, diff --git a/packages/jest-circus/package.json b/packages/jest-circus/package.json index 4272cb53c336..c4e7b01f7920 100644 --- a/packages/jest-circus/package.json +++ b/packages/jest-circus/package.json @@ -1,6 +1,6 @@ { "name": "jest-circus", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -15,22 +15,22 @@ "./runner": "./runner.js" }, "dependencies": { - "@jest/environment": "^27.2.4", - "@jest/test-result": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/environment": "^27.2.5", + "@jest/test-result": "^27.2.5", + "@jest/types": "^27.2.5", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", - "expect": "^27.2.4", + "expect": "^27.2.5", "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.4", - "jest-matcher-utils": "^27.2.4", - "jest-message-util": "^27.2.4", - "jest-runtime": "^27.2.4", - "jest-snapshot": "^27.2.4", - "jest-util": "^27.2.4", - "pretty-format": "^27.2.4", + "jest-each": "^27.2.5", + "jest-matcher-utils": "^27.2.5", + "jest-message-util": "^27.2.5", + "jest-runtime": "^27.2.5", + "jest-snapshot": "^27.2.5", + "jest-util": "^27.2.5", + "pretty-format": "^27.2.5", "slash": "^3.0.0", "stack-utils": "^2.0.3", "throat": "^6.0.1" @@ -38,7 +38,7 @@ "devDependencies": { "@babel/core": "^7.1.0", "@babel/register": "^7.0.0", - "@jest/test-utils": "^27.2.4", + "@jest/test-utils": "^27.2.5", "@types/co": "^4.6.0", "@types/dedent": "^0.7.0", "@types/graceful-fs": "^4.1.3", diff --git a/packages/jest-cli/package.json b/packages/jest-cli/package.json index 997135f1a0a8..72d2188af3ff 100644 --- a/packages/jest-cli/package.json +++ b/packages/jest-cli/package.json @@ -1,7 +1,7 @@ { "name": "jest-cli", "description": "Delightful JavaScript Testing.", - "version": "27.2.4", + "version": "27.2.5", "main": "./build/index.js", "types": "./build/index.d.ts", "exports": { @@ -10,21 +10,21 @@ "./bin/jest": "./bin/jest.js" }, "dependencies": { - "@jest/core": "^27.2.4", - "@jest/test-result": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/core": "^27.2.5", + "@jest/test-result": "^27.2.5", + "@jest/types": "^27.2.5", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.4", "import-local": "^3.0.2", - "jest-config": "^27.2.4", - "jest-util": "^27.2.4", - "jest-validate": "^27.2.4", + "jest-config": "^27.2.5", + "jest-util": "^27.2.5", + "jest-validate": "^27.2.5", "prompts": "^2.0.1", "yargs": "^16.2.0" }, "devDependencies": { - "@jest/test-utils": "^27.2.4", + "@jest/test-utils": "^27.2.5", "@types/exit": "^0.1.30", "@types/graceful-fs": "^4.1.3", "@types/prompts": "^2.0.1", diff --git a/packages/jest-config/package.json b/packages/jest-config/package.json index 40641234efd3..d7c9976b38f0 100644 --- a/packages/jest-config/package.json +++ b/packages/jest-config/package.json @@ -1,6 +1,6 @@ { "name": "jest-config", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -23,26 +23,26 @@ }, "dependencies": { "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.2.4", - "@jest/types": "^27.2.4", - "babel-jest": "^27.2.4", + "@jest/test-sequencer": "^27.2.5", + "@jest/types": "^27.2.5", + "babel-jest": "^27.2.5", "chalk": "^4.0.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", "graceful-fs": "^4.2.4", "is-ci": "^3.0.0", - "jest-circus": "^27.2.4", - "jest-environment-jsdom": "^27.2.4", - "jest-environment-node": "^27.2.4", + "jest-circus": "^27.2.5", + "jest-environment-jsdom": "^27.2.5", + "jest-environment-node": "^27.2.5", "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.2.4", + "jest-jasmine2": "^27.2.5", "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.4", - "jest-runner": "^27.2.4", - "jest-util": "^27.2.4", - "jest-validate": "^27.2.4", + "jest-resolve": "^27.2.5", + "jest-runner": "^27.2.5", + "jest-util": "^27.2.5", + "jest-validate": "^27.2.5", "micromatch": "^4.0.4", - "pretty-format": "^27.2.4" + "pretty-format": "^27.2.5" }, "devDependencies": { "@types/babel__core": "^7.0.4", diff --git a/packages/jest-console/package.json b/packages/jest-console/package.json index 3eca26f9012e..19c9107d55b4 100644 --- a/packages/jest-console/package.json +++ b/packages/jest-console/package.json @@ -1,6 +1,6 @@ { "name": "@jest/console", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,15 +14,15 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^27.2.4", - "jest-util": "^27.2.4", + "jest-message-util": "^27.2.5", + "jest-util": "^27.2.5", "slash": "^3.0.0" }, "devDependencies": { - "@jest/test-utils": "^27.2.4", + "@jest/test-utils": "^27.2.5", "@types/node": "*" }, "engines": { diff --git a/packages/jest-core/package.json b/packages/jest-core/package.json index 8ad2f1feefe9..74983d936696 100644 --- a/packages/jest-core/package.json +++ b/packages/jest-core/package.json @@ -1,7 +1,7 @@ { "name": "@jest/core", "description": "Delightful JavaScript Testing.", - "version": "27.2.4", + "version": "27.2.5", "main": "./build/jest.js", "types": "./build/jest.d.ts", "exports": { @@ -9,38 +9,38 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/console": "^27.2.4", - "@jest/reporters": "^27.2.4", - "@jest/test-result": "^27.2.4", - "@jest/transform": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/console": "^27.2.5", + "@jest/reporters": "^27.2.5", + "@jest/test-result": "^27.2.5", + "@jest/transform": "^27.2.5", + "@jest/types": "^27.2.5", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.8.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.2.4", - "jest-config": "^27.2.4", - "jest-haste-map": "^27.2.4", - "jest-message-util": "^27.2.4", + "jest-changed-files": "^27.2.5", + "jest-config": "^27.2.5", + "jest-haste-map": "^27.2.5", + "jest-message-util": "^27.2.5", "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.4", - "jest-resolve-dependencies": "^27.2.4", - "jest-runner": "^27.2.4", - "jest-runtime": "^27.2.4", - "jest-snapshot": "^27.2.4", - "jest-util": "^27.2.4", - "jest-validate": "^27.2.4", - "jest-watcher": "^27.2.4", + "jest-resolve": "^27.2.5", + "jest-resolve-dependencies": "^27.2.5", + "jest-runner": "^27.2.5", + "jest-runtime": "^27.2.5", + "jest-snapshot": "^27.2.5", + "jest-util": "^27.2.5", + "jest-validate": "^27.2.5", + "jest-watcher": "^27.2.5", "micromatch": "^4.0.4", "rimraf": "^3.0.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "devDependencies": { - "@jest/test-sequencer": "^27.2.4", - "@jest/test-utils": "^27.2.4", + "@jest/test-sequencer": "^27.2.5", + "@jest/test-utils": "^27.2.5", "@types/exit": "^0.1.30", "@types/graceful-fs": "^4.1.2", "@types/micromatch": "^4.0.1", diff --git a/packages/jest-create-cache-key-function/package.json b/packages/jest-create-cache-key-function/package.json index f5e31aa9707e..966e11a8604d 100644 --- a/packages/jest-create-cache-key-function/package.json +++ b/packages/jest-create-cache-key-function/package.json @@ -1,17 +1,17 @@ { "name": "@jest/create-cache-key-function", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", "directory": "packages/jest-create-cache-key-function" }, "dependencies": { - "@jest/types": "^27.2.4" + "@jest/types": "^27.2.5" }, "devDependencies": { "@types/node": "*", - "jest-util": "^27.2.4" + "jest-util": "^27.2.5" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" diff --git a/packages/jest-diff/package.json b/packages/jest-diff/package.json index 0777a1321153..bd6ebe3b0f31 100644 --- a/packages/jest-diff/package.json +++ b/packages/jest-diff/package.json @@ -1,6 +1,6 @@ { "name": "jest-diff", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -17,10 +17,10 @@ "chalk": "^4.0.0", "diff-sequences": "^27.0.6", "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.4" + "pretty-format": "^27.2.5" }, "devDependencies": { - "@jest/test-utils": "^27.2.4", + "@jest/test-utils": "^27.2.5", "strip-ansi": "^6.0.0" }, "engines": { diff --git a/packages/jest-each/package.json b/packages/jest-each/package.json index 1fa0ecaa0ac4..f4c10c5701de 100644 --- a/packages/jest-each/package.json +++ b/packages/jest-each/package.json @@ -1,6 +1,6 @@ { "name": "jest-each", - "version": "27.2.4", + "version": "27.2.5", "description": "Parameterised tests for Jest", "main": "./build/index.js", "types": "./build/index.d.ts", @@ -22,11 +22,11 @@ "author": "Matt Phillips (mattphillips)", "license": "MIT", "dependencies": { - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "chalk": "^4.0.0", "jest-get-type": "^27.0.6", - "jest-util": "^27.2.4", - "pretty-format": "^27.2.4" + "jest-util": "^27.2.5", + "pretty-format": "^27.2.5" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" diff --git a/packages/jest-environment-jsdom/package.json b/packages/jest-environment-jsdom/package.json index 3eeebbaf9e07..81d32b325584 100644 --- a/packages/jest-environment-jsdom/package.json +++ b/packages/jest-environment-jsdom/package.json @@ -1,6 +1,6 @@ { "name": "jest-environment-jsdom", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,16 +14,16 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/environment": "^27.2.4", - "@jest/fake-timers": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/environment": "^27.2.5", + "@jest/fake-timers": "^27.2.5", + "@jest/types": "^27.2.5", "@types/node": "*", - "jest-mock": "^27.2.4", - "jest-util": "^27.2.4", + "jest-mock": "^27.2.5", + "jest-util": "^27.2.5", "jsdom": "^16.6.0" }, "devDependencies": { - "@jest/test-utils": "^27.2.4", + "@jest/test-utils": "^27.2.5", "@types/jsdom": "^16.2.4" }, "engines": { diff --git a/packages/jest-environment-node/package.json b/packages/jest-environment-node/package.json index f1dc7af523a2..f8cd5affe256 100644 --- a/packages/jest-environment-node/package.json +++ b/packages/jest-environment-node/package.json @@ -1,6 +1,6 @@ { "name": "jest-environment-node", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,15 +14,15 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/environment": "^27.2.4", - "@jest/fake-timers": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/environment": "^27.2.5", + "@jest/fake-timers": "^27.2.5", + "@jest/types": "^27.2.5", "@types/node": "*", - "jest-mock": "^27.2.4", - "jest-util": "^27.2.4" + "jest-mock": "^27.2.5", + "jest-util": "^27.2.5" }, "devDependencies": { - "@jest/test-utils": "^27.2.4" + "@jest/test-utils": "^27.2.5" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" diff --git a/packages/jest-environment/package.json b/packages/jest-environment/package.json index 56832d6f5c8b..adb81959cf4f 100644 --- a/packages/jest-environment/package.json +++ b/packages/jest-environment/package.json @@ -1,6 +1,6 @@ { "name": "@jest/environment", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,10 +14,10 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/fake-timers": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/fake-timers": "^27.2.5", + "@jest/types": "^27.2.5", "@types/node": "*", - "jest-mock": "^27.2.4" + "jest-mock": "^27.2.5" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" diff --git a/packages/jest-fake-timers/package.json b/packages/jest-fake-timers/package.json index 6691236c8373..239e7fe5560c 100644 --- a/packages/jest-fake-timers/package.json +++ b/packages/jest-fake-timers/package.json @@ -1,6 +1,6 @@ { "name": "@jest/fake-timers", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,12 +14,12 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "@sinonjs/fake-timers": "^8.0.1", "@types/node": "*", - "jest-message-util": "^27.2.4", - "jest-mock": "^27.2.4", - "jest-util": "^27.2.4" + "jest-message-util": "^27.2.5", + "jest-mock": "^27.2.5", + "jest-util": "^27.2.5" }, "devDependencies": { "@types/sinonjs__fake-timers": "^6.0.1", diff --git a/packages/jest-globals/package.json b/packages/jest-globals/package.json index 7b3179c2f82d..02e52ebbced0 100644 --- a/packages/jest-globals/package.json +++ b/packages/jest-globals/package.json @@ -1,6 +1,6 @@ { "name": "@jest/globals", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -17,9 +17,9 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/environment": "^27.2.4", - "@jest/types": "^27.2.4", - "expect": "^27.2.4" + "@jest/environment": "^27.2.5", + "@jest/types": "^27.2.5", + "expect": "^27.2.5" }, "publishConfig": { "access": "public" diff --git a/packages/jest-haste-map/package.json b/packages/jest-haste-map/package.json index 5eee40484cec..7b098c4b2266 100644 --- a/packages/jest-haste-map/package.json +++ b/packages/jest-haste-map/package.json @@ -1,6 +1,6 @@ { "name": "jest-haste-map", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,7 +14,7 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", @@ -22,13 +22,13 @@ "graceful-fs": "^4.2.4", "jest-regex-util": "^27.0.6", "jest-serializer": "^27.0.6", - "jest-util": "^27.2.4", - "jest-worker": "^27.2.4", + "jest-util": "^27.2.5", + "jest-worker": "^27.2.5", "micromatch": "^4.0.4", "walker": "^1.0.7" }, "devDependencies": { - "@jest/test-utils": "^27.2.4", + "@jest/test-utils": "^27.2.5", "@types/fb-watchman": "^2.0.0", "@types/micromatch": "^4.0.1", "jest-snapshot-serializer-raw": "^1.1.0", diff --git a/packages/jest-jasmine2/package.json b/packages/jest-jasmine2/package.json index a743448e2bca..2528875b7e5e 100644 --- a/packages/jest-jasmine2/package.json +++ b/packages/jest-jasmine2/package.json @@ -1,6 +1,6 @@ { "name": "jest-jasmine2", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -15,22 +15,22 @@ }, "dependencies": { "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.2.4", + "@jest/environment": "^27.2.5", "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/test-result": "^27.2.5", + "@jest/types": "^27.2.5", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "expect": "^27.2.4", + "expect": "^27.2.5", "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.4", - "jest-matcher-utils": "^27.2.4", - "jest-message-util": "^27.2.4", - "jest-runtime": "^27.2.4", - "jest-snapshot": "^27.2.4", - "jest-util": "^27.2.4", - "pretty-format": "^27.2.4", + "jest-each": "^27.2.5", + "jest-matcher-utils": "^27.2.5", + "jest-message-util": "^27.2.5", + "jest-runtime": "^27.2.5", + "jest-snapshot": "^27.2.5", + "jest-util": "^27.2.5", + "pretty-format": "^27.2.5", "throat": "^6.0.1" }, "devDependencies": { diff --git a/packages/jest-leak-detector/package.json b/packages/jest-leak-detector/package.json index 6c4d4f753a19..93e38f627a55 100644 --- a/packages/jest-leak-detector/package.json +++ b/packages/jest-leak-detector/package.json @@ -1,6 +1,6 @@ { "name": "jest-leak-detector", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -15,7 +15,7 @@ }, "dependencies": { "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.4" + "pretty-format": "^27.2.5" }, "devDependencies": { "@types/weak-napi": "^2.0.0", diff --git a/packages/jest-matcher-utils/package.json b/packages/jest-matcher-utils/package.json index c22e033c8a66..85e861572f66 100644 --- a/packages/jest-matcher-utils/package.json +++ b/packages/jest-matcher-utils/package.json @@ -1,7 +1,7 @@ { "name": "jest-matcher-utils", "description": "A set of utility functions for expect and related packages", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -19,12 +19,12 @@ }, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^27.2.4", + "jest-diff": "^27.2.5", "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.4" + "pretty-format": "^27.2.5" }, "devDependencies": { - "@jest/test-utils": "^27.2.4", + "@jest/test-utils": "^27.2.5", "@types/node": "*" }, "publishConfig": { diff --git a/packages/jest-message-util/package.json b/packages/jest-message-util/package.json index d0bcc843bc10..b736ae32d903 100644 --- a/packages/jest-message-util/package.json +++ b/packages/jest-message-util/package.json @@ -1,6 +1,6 @@ { "name": "jest-message-util", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -18,12 +18,12 @@ }, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.2.4", + "pretty-format": "^27.2.5", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, diff --git a/packages/jest-mock/package.json b/packages/jest-mock/package.json index 0378b204c18d..46e2dd212e77 100644 --- a/packages/jest-mock/package.json +++ b/packages/jest-mock/package.json @@ -1,6 +1,6 @@ { "name": "jest-mock", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -10,7 +10,7 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "dependencies": { - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "@types/node": "*" }, "license": "MIT", diff --git a/packages/jest-phabricator/package.json b/packages/jest-phabricator/package.json index 438b5a3b56bb..c86dc2e11d3b 100644 --- a/packages/jest-phabricator/package.json +++ b/packages/jest-phabricator/package.json @@ -1,6 +1,6 @@ { "name": "jest-phabricator", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -12,7 +12,7 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/test-result": "^27.2.4" + "@jest/test-result": "^27.2.5" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" diff --git a/packages/jest-repl/package.json b/packages/jest-repl/package.json index c1d49748b544..925159bb8c02 100644 --- a/packages/jest-repl/package.json +++ b/packages/jest-repl/package.json @@ -1,6 +1,6 @@ { "name": "jest-repl", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -16,20 +16,20 @@ "./bin/jest-runtime-cli": "./bin/jest-runtime-cli.js" }, "dependencies": { - "@jest/console": "^27.2.4", - "@jest/environment": "^27.2.4", - "@jest/transform": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/console": "^27.2.5", + "@jest/environment": "^27.2.5", + "@jest/transform": "^27.2.5", + "@jest/types": "^27.2.5", "chalk": "^4.0.0", - "jest-config": "^27.2.4", - "jest-runtime": "^27.2.4", - "jest-util": "^27.2.4", - "jest-validate": "^27.2.4", + "jest-config": "^27.2.5", + "jest-runtime": "^27.2.5", + "jest-util": "^27.2.5", + "jest-validate": "^27.2.5", "repl": "^0.1.3", "yargs": "^16.2.0" }, "devDependencies": { - "@jest/test-utils": "^27.2.4", + "@jest/test-utils": "^27.2.5", "@types/yargs": "^16.0.0", "execa": "^5.0.0" }, diff --git a/packages/jest-reporters/package.json b/packages/jest-reporters/package.json index ee4bf4712ba7..58e826f56a50 100644 --- a/packages/jest-reporters/package.json +++ b/packages/jest-reporters/package.json @@ -1,7 +1,7 @@ { "name": "@jest/reporters", "description": "Jest's reporters", - "version": "27.2.4", + "version": "27.2.5", "main": "./build/index.js", "types": "./build/index.d.ts", "exports": { @@ -10,10 +10,10 @@ }, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.2.4", - "@jest/test-result": "^27.2.4", - "@jest/transform": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/console": "^27.2.5", + "@jest/test-result": "^27.2.5", + "@jest/transform": "^27.2.5", + "@jest/types": "^27.2.5", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", @@ -25,10 +25,10 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.2.4", - "jest-resolve": "^27.2.4", - "jest-util": "^27.2.4", - "jest-worker": "^27.2.4", + "jest-haste-map": "^27.2.5", + "jest-resolve": "^27.2.5", + "jest-util": "^27.2.5", + "jest-worker": "^27.2.5", "slash": "^3.0.0", "source-map": "^0.6.0", "string-length": "^4.0.1", @@ -36,7 +36,7 @@ "v8-to-istanbul": "^8.1.0" }, "devDependencies": { - "@jest/test-utils": "^27.2.4", + "@jest/test-utils": "^27.2.5", "@types/exit": "^0.1.30", "@types/glob": "^7.1.1", "@types/graceful-fs": "^4.1.3", diff --git a/packages/jest-resolve-dependencies/package.json b/packages/jest-resolve-dependencies/package.json index 8fe4df847120..a25dc7158692 100644 --- a/packages/jest-resolve-dependencies/package.json +++ b/packages/jest-resolve-dependencies/package.json @@ -1,6 +1,6 @@ { "name": "jest-resolve-dependencies", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,15 +14,15 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.2.4" + "jest-snapshot": "^27.2.5" }, "devDependencies": { - "@jest/test-utils": "^27.2.4", - "jest-haste-map": "^27.2.4", - "jest-resolve": "^27.2.4", - "jest-runtime": "^27.2.4" + "@jest/test-utils": "^27.2.5", + "jest-haste-map": "^27.2.5", + "jest-resolve": "^27.2.5", + "jest-runtime": "^27.2.5" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" diff --git a/packages/jest-resolve/package.json b/packages/jest-resolve/package.json index 725ed4b83cf5..5dbb38901a16 100644 --- a/packages/jest-resolve/package.json +++ b/packages/jest-resolve/package.json @@ -1,6 +1,6 @@ { "name": "jest-resolve", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,14 +14,14 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "chalk": "^4.0.0", "escalade": "^3.1.1", "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.4", + "jest-haste-map": "^27.2.5", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.2.4", - "jest-validate": "^27.2.4", + "jest-util": "^27.2.5", + "jest-validate": "^27.2.5", "resolve": "^1.20.0", "slash": "^3.0.0" }, diff --git a/packages/jest-runner/package.json b/packages/jest-runner/package.json index 8833671d7dcc..0e6aef1d9e18 100644 --- a/packages/jest-runner/package.json +++ b/packages/jest-runner/package.json @@ -1,6 +1,6 @@ { "name": "jest-runner", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,26 +14,26 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/console": "^27.2.4", - "@jest/environment": "^27.2.4", - "@jest/test-result": "^27.2.4", - "@jest/transform": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/console": "^27.2.5", + "@jest/environment": "^27.2.5", + "@jest/test-result": "^27.2.5", + "@jest/transform": "^27.2.5", + "@jest/types": "^27.2.5", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.8.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.2.4", - "jest-environment-node": "^27.2.4", - "jest-haste-map": "^27.2.4", - "jest-leak-detector": "^27.2.4", - "jest-message-util": "^27.2.4", - "jest-resolve": "^27.2.4", - "jest-runtime": "^27.2.4", - "jest-util": "^27.2.4", - "jest-worker": "^27.2.4", + "jest-environment-jsdom": "^27.2.5", + "jest-environment-node": "^27.2.5", + "jest-haste-map": "^27.2.5", + "jest-leak-detector": "^27.2.5", + "jest-message-util": "^27.2.5", + "jest-resolve": "^27.2.5", + "jest-runtime": "^27.2.5", + "jest-util": "^27.2.5", + "jest-worker": "^27.2.5", "source-map-support": "^0.5.6", "throat": "^6.0.1" }, @@ -41,7 +41,7 @@ "@types/exit": "^0.1.30", "@types/graceful-fs": "^4.1.2", "@types/source-map-support": "^0.5.0", - "jest-jasmine2": "^27.2.4" + "jest-jasmine2": "^27.2.5" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" diff --git a/packages/jest-runtime/package.json b/packages/jest-runtime/package.json index a2e18deac3d1..881360f1050c 100644 --- a/packages/jest-runtime/package.json +++ b/packages/jest-runtime/package.json @@ -1,6 +1,6 @@ { "name": "jest-runtime", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,14 +14,14 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/console": "^27.2.4", - "@jest/environment": "^27.2.4", - "@jest/fake-timers": "^27.2.4", - "@jest/globals": "^27.2.4", + "@jest/console": "^27.2.5", + "@jest/environment": "^27.2.5", + "@jest/fake-timers": "^27.2.5", + "@jest/globals": "^27.2.5", "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.4", - "@jest/transform": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/test-result": "^27.2.5", + "@jest/transform": "^27.2.5", + "@jest/types": "^27.2.5", "@types/yargs": "^16.0.0", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", @@ -30,25 +30,25 @@ "exit": "^0.1.2", "glob": "^7.1.3", "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.4", - "jest-message-util": "^27.2.4", - "jest-mock": "^27.2.4", + "jest-haste-map": "^27.2.5", + "jest-message-util": "^27.2.5", + "jest-mock": "^27.2.5", "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.4", - "jest-snapshot": "^27.2.4", - "jest-util": "^27.2.4", - "jest-validate": "^27.2.4", + "jest-resolve": "^27.2.5", + "jest-snapshot": "^27.2.5", + "jest-util": "^27.2.5", + "jest-validate": "^27.2.5", "slash": "^3.0.0", "strip-bom": "^4.0.0", "yargs": "^16.2.0" }, "devDependencies": { - "@jest/test-utils": "^27.2.4", + "@jest/test-utils": "^27.2.5", "@types/exit": "^0.1.30", "@types/glob": "^7.1.1", "@types/graceful-fs": "^4.1.2", "@types/node": "^14.0.27", - "jest-environment-node": "^27.2.4", + "jest-environment-node": "^27.2.5", "jest-snapshot-serializer-raw": "^1.1.0" }, "engines": { diff --git a/packages/jest-snapshot/package.json b/packages/jest-snapshot/package.json index 80654acbb56e..5ebd530201f3 100644 --- a/packages/jest-snapshot/package.json +++ b/packages/jest-snapshot/package.json @@ -1,6 +1,6 @@ { "name": "jest-snapshot", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -20,29 +20,29 @@ "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/traverse": "^7.7.2", "@babel/types": "^7.0.0", - "@jest/transform": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/transform": "^27.2.5", + "@jest/types": "^27.2.5", "@types/babel__traverse": "^7.0.4", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^27.2.4", + "expect": "^27.2.5", "graceful-fs": "^4.2.4", - "jest-diff": "^27.2.4", + "jest-diff": "^27.2.5", "jest-get-type": "^27.0.6", - "jest-haste-map": "^27.2.4", - "jest-matcher-utils": "^27.2.4", - "jest-message-util": "^27.2.4", - "jest-resolve": "^27.2.4", - "jest-util": "^27.2.4", + "jest-haste-map": "^27.2.5", + "jest-matcher-utils": "^27.2.5", + "jest-message-util": "^27.2.5", + "jest-resolve": "^27.2.5", + "jest-util": "^27.2.5", "natural-compare": "^1.4.0", - "pretty-format": "^27.2.4", + "pretty-format": "^27.2.5", "semver": "^7.3.2" }, "devDependencies": { "@babel/preset-flow": "^7.7.2", "@babel/preset-react": "^7.7.2", - "@jest/test-utils": "^27.2.4", + "@jest/test-utils": "^27.2.5", "@types/graceful-fs": "^4.1.3", "@types/natural-compare": "^1.4.0", "@types/semver": "^7.1.0", diff --git a/packages/jest-test-result/package.json b/packages/jest-test-result/package.json index afcf422e7ae3..5c56f084c706 100644 --- a/packages/jest-test-result/package.json +++ b/packages/jest-test-result/package.json @@ -1,6 +1,6 @@ { "name": "@jest/test-result", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,8 +14,8 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/console": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/console": "^27.2.5", + "@jest/types": "^27.2.5", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, diff --git a/packages/jest-test-sequencer/package.json b/packages/jest-test-sequencer/package.json index e43cf09d65ff..17ba20086463 100644 --- a/packages/jest-test-sequencer/package.json +++ b/packages/jest-test-sequencer/package.json @@ -1,6 +1,6 @@ { "name": "@jest/test-sequencer", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,10 +14,10 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/test-result": "^27.2.4", + "@jest/test-result": "^27.2.5", "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.4", - "jest-runtime": "^27.2.4" + "jest-haste-map": "^27.2.5", + "jest-runtime": "^27.2.5" }, "devDependencies": { "@types/graceful-fs": "^4.1.3" diff --git a/packages/jest-transform/package.json b/packages/jest-transform/package.json index 6acdaf8b98ee..26a3c391452b 100644 --- a/packages/jest-transform/package.json +++ b/packages/jest-transform/package.json @@ -1,6 +1,6 @@ { "name": "@jest/transform", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -15,15 +15,15 @@ }, "dependencies": { "@babel/core": "^7.1.0", - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "babel-plugin-istanbul": "^6.0.0", "chalk": "^4.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.4", + "jest-haste-map": "^27.2.5", "jest-regex-util": "^27.0.6", - "jest-util": "^27.2.4", + "jest-util": "^27.2.5", "micromatch": "^4.0.4", "pirates": "^4.0.1", "slash": "^3.0.0", @@ -31,7 +31,7 @@ "write-file-atomic": "^3.0.0" }, "devDependencies": { - "@jest/test-utils": "^27.2.4", + "@jest/test-utils": "^27.2.5", "@types/babel__core": "^7.1.0", "@types/convert-source-map": "^1.5.1", "@types/fast-json-stable-stringify": "^2.0.0", diff --git a/packages/jest-types/package.json b/packages/jest-types/package.json index 5bf4e606c29a..5568a6ff62b7 100644 --- a/packages/jest-types/package.json +++ b/packages/jest-types/package.json @@ -1,6 +1,6 @@ { "name": "@jest/types", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", diff --git a/packages/jest-util/package.json b/packages/jest-util/package.json index f9f4ea19cc28..81cb2e6a9147 100644 --- a/packages/jest-util/package.json +++ b/packages/jest-util/package.json @@ -1,6 +1,6 @@ { "name": "jest-util", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,7 +14,7 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", diff --git a/packages/jest-validate/package.json b/packages/jest-validate/package.json index e0355fefbb6a..0d773d45e8a3 100644 --- a/packages/jest-validate/package.json +++ b/packages/jest-validate/package.json @@ -1,6 +1,6 @@ { "name": "jest-validate", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -14,12 +14,12 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^27.0.6", "leven": "^3.1.0", - "pretty-format": "^27.2.4" + "pretty-format": "^27.2.5" }, "devDependencies": { "@types/yargs": "^16.0.0" diff --git a/packages/jest-watcher/package.json b/packages/jest-watcher/package.json index affba53b5e9a..19ca662dd038 100644 --- a/packages/jest-watcher/package.json +++ b/packages/jest-watcher/package.json @@ -1,7 +1,7 @@ { "name": "jest-watcher", "description": "Delightful JavaScript Testing.", - "version": "27.2.4", + "version": "27.2.5", "main": "./build/index.js", "types": "./build/index.d.ts", "exports": { @@ -9,12 +9,12 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/test-result": "^27.2.4", - "@jest/types": "^27.2.4", + "@jest/test-result": "^27.2.5", + "@jest/types": "^27.2.5", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^27.2.4", + "jest-util": "^27.2.5", "string-length": "^4.0.1" }, "repository": { diff --git a/packages/jest-worker/package.json b/packages/jest-worker/package.json index 45ea17bf54df..d7131a43fd92 100644 --- a/packages/jest-worker/package.json +++ b/packages/jest-worker/package.json @@ -1,6 +1,6 @@ { "name": "jest-worker", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -22,7 +22,7 @@ "@types/merge-stream": "^1.1.2", "@types/supports-color": "^8.1.0", "get-stream": "^6.0.0", - "jest-leak-detector": "^27.2.4", + "jest-leak-detector": "^27.2.5", "worker-farm": "^1.6.0" }, "engines": { diff --git a/packages/jest/package.json b/packages/jest/package.json index 55c45f1156ef..42915dea2bb8 100644 --- a/packages/jest/package.json +++ b/packages/jest/package.json @@ -1,7 +1,7 @@ { "name": "jest", "description": "Delightful JavaScript Testing.", - "version": "27.2.4", + "version": "27.2.5", "main": "./build/jest.js", "types": "./build/jest.d.ts", "exports": { @@ -10,9 +10,9 @@ "./bin/jest": "./bin/jest.js" }, "dependencies": { - "@jest/core": "^27.2.4", + "@jest/core": "^27.2.5", "import-local": "^3.0.2", - "jest-cli": "^27.2.4" + "jest-cli": "^27.2.5" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" diff --git a/packages/pretty-format/package.json b/packages/pretty-format/package.json index a472c9ac63fd..e9edc8b3f3aa 100644 --- a/packages/pretty-format/package.json +++ b/packages/pretty-format/package.json @@ -1,6 +1,6 @@ { "name": "pretty-format", - "version": "27.2.4", + "version": "27.2.5", "repository": { "type": "git", "url": "https://github.com/facebook/jest.git", @@ -16,7 +16,7 @@ }, "author": "James Kyle ", "dependencies": { - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" @@ -26,7 +26,7 @@ "@types/react-is": "^17.0.0", "@types/react-test-renderer": "*", "immutable": "4.0.0-rc.9", - "jest-util": "^27.2.4", + "jest-util": "^27.2.5", "react": "*", "react-dom": "*", "react-test-renderer": "*" diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 17d083557a28..c42314d4bcb0 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@jest/test-utils", - "version": "27.2.4", + "version": "27.2.5", "private": true, "license": "MIT", "main": "./build/index.js", @@ -10,13 +10,13 @@ "./package.json": "./package.json" }, "dependencies": { - "@jest/types": "^27.2.4", + "@jest/types": "^27.2.5", "@types/jest": "*", "@types/node": "*", "@types/semver": "^7.1.0", "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", - "pretty-format": "^27.2.4", + "pretty-format": "^27.2.5", "semver": "^7.3.2" }, "engines": {