test-reporter/__tests__/__outputs__/jest-test-results.md
2025-05-17 13:37:38 +02:00

306 KiB

Tests failed

Report Passed Failed Skipped Time
fixtures/external/jest/jest-test-results.xml 4207 2 30 166s

 fixtures/external/jest/jest-test-results.xml

4239 tests were completed in 166s with 4207 passed, 2 failed and 30 skipped.

Test suite Passed Failed Skipped Time
e2e/tests/asyncAndCallback.test.ts 1 746ms
e2e/tests/asyncRegenerator.test.ts 1 4s
e2e/tests/autoClearMocks.test.ts 2 2s
e2e/tests/autoResetMocks.test.ts 2 2s
e2e/tests/autoRestoreMocks.test.ts 2 2s
e2e/tests/babelPluginJestHoist.test.ts 1 6s
e2e/tests/badSourceMap.test.ts 1 858ms
e2e/tests/beforeAllFiltered.ts 1 958ms
e2e/tests/beforeEachQueue.ts 1 1 55ms
e2e/tests/callDoneTwice.test.ts 1 882ms
e2e/tests/chaiAssertionLibrary.ts 1 2s
e2e/tests/circularInequality.test.ts 1 1s
e2e/tests/circusConcurrentEach.test.ts 2 2s
e2e/tests/circusDeclarationErrors.test.ts 1 869ms
e2e/tests/clearCache.test.ts 2 1s
e2e/tests/cliHandlesExactFilenames.test.ts 2 1s
e2e/tests/compareDomNodes.test.ts 1 1s
e2e/tests/config.test.ts 6 4s
e2e/tests/console.test.ts 7 8s
e2e/tests/consoleAfterTeardown.test.ts 1 1s
e2e/tests/consoleLogOutputWhenRunInBand.test.ts 1 793ms
e2e/tests/coverageHandlebars.test.ts 1 2s
e2e/tests/coverageRemapping.test.ts 1 13s
e2e/tests/coverageReport.test.ts 12 22s
e2e/tests/coverageThreshold.test.ts 5 5s
e2e/tests/coverageTransformInstrumented.test.ts 1 5s
e2e/tests/coverageWithoutTransform.test.ts 1 1s
e2e/tests/createProcessObject.test.ts 1 908ms
e2e/tests/customInlineSnapshotMatchers.test.ts 1 2s
e2e/tests/customMatcherStackTrace.test.ts 2 2s
e2e/tests/customReporters.test.ts 9 7s
e2e/tests/customResolver.test.ts 1 826ms
e2e/tests/customTestSequencers.test.ts 3 3s
e2e/tests/debug.test.ts 1 899ms
e2e/tests/declarationErrors.test.ts 3 2s
e2e/tests/dependencyClash.test.ts 1 833ms
e2e/tests/detectOpenHandles.ts 8 8s
e2e/tests/domDiffing.test.ts 1 1s
e2e/tests/doneInHooks.test.ts 1 855ms
e2e/tests/dynamicRequireDependencies.ts 1 847ms
e2e/tests/each.test.ts 7 5s
e2e/tests/emptyDescribeWithHooks.test.ts 4 3s
e2e/tests/emptySuiteError.test.ts 1 885ms
e2e/tests/env.test.ts 6 5s
e2e/tests/environmentAfterTeardown.test.ts 1 892ms
e2e/tests/errorOnDeprecated.test.ts 1 24 56ms
e2e/tests/esmConfigFile.test.ts 3 526ms
e2e/tests/executeTestsOnceInMpr.ts 1 976ms
e2e/tests/existentRoots.test.ts 4 627ms
e2e/tests/expectAsyncMatcher.test.ts 2 3s
e2e/tests/expectInVm.test.ts 1 2s
e2e/tests/extraGlobals.test.ts 1 1s
e2e/tests/failureDetailsProperty.test.ts 1 907ms
e2e/tests/failures.test.ts 7 10s
e2e/tests/fakePromises.test.ts 2 2s
e2e/tests/fatalWorkerError.test.ts 1 3s
e2e/tests/filter.test.ts 7 5s
e2e/tests/findRelatedFiles.test.ts 5 6s
e2e/tests/focusedTests.test.ts 1 888ms
e2e/tests/forceExit.test.ts 1 2s
e2e/tests/generatorMock.test.ts 1 1s
e2e/tests/global-mutation.test.ts 1 40ms
e2e/tests/global.test.ts 1 31ms
e2e/tests/globals.test.ts 10 8s
e2e/tests/globalSetup.test.ts 10 14s
e2e/tests/globalTeardown.test.ts 7 12s
e2e/tests/hasteMapMockChanged.test.ts 1 379ms
e2e/tests/hasteMapSha1.test.ts 1 298ms
e2e/tests/hasteMapSize.test.ts 2 397ms
e2e/tests/importedGlobals.test.ts 1 1s
e2e/tests/injectGlobals.test.ts 2 2s
e2e/tests/jasmineAsync.test.ts 15 28s
e2e/tests/jasmineAsyncWithPendingDuringTest.ts 1 1 72ms
e2e/tests/jest.config.js.test.ts 3 2s
e2e/tests/jest.config.ts.test.ts 5 14s
e2e/tests/jestChangedFiles.test.ts 9 1 9s
e2e/tests/jestEnvironmentJsdom.test.ts 1 2s
e2e/tests/jestRequireActual.test.ts 1 2s
e2e/tests/jestRequireMock.test.ts 1 2s
e2e/tests/json.test.ts 2 29ms
e2e/tests/jsonReporter.test.ts 2 2s
e2e/tests/lifecycles.ts 1 861ms
e2e/tests/listTests.test.ts 2 945ms
e2e/tests/locationInResults.test.ts 2 2s
e2e/tests/logHeapUsage.test.ts 1 884ms
e2e/tests/mockNames.test.ts 8 7s
e2e/tests/modernFakeTimers.test.ts 2 2s
e2e/tests/moduleNameMapper.test.ts 5 5s
e2e/tests/moduleParentNullInTest.ts 1 886ms
e2e/tests/multiProjectRunner.test.ts 14 16s
e2e/tests/nativeAsyncMock.test.ts 1 55ms
e2e/tests/nativeEsm.test.ts 2 1 905ms
e2e/tests/nativeEsmTypescript.test.ts 1 956ms
e2e/tests/nestedEventLoop.test.ts 1 1s
e2e/tests/nestedTestDefinitions.test.ts 4 5s
e2e/tests/nodePath.test.ts 1 866ms
e2e/tests/noTestFound.test.ts 2 1s
e2e/tests/noTestsFound.test.ts 5 3s
e2e/tests/onlyChanged.test.ts 8 1 22s
e2e/tests/onlyFailuresNonWatch.test.ts 1 3s
e2e/tests/overrideGlobals.test.ts 2 2s
e2e/tests/pnp.test.ts 1 3s
e2e/tests/presets.test.ts 2 2s
e2e/tests/processExit.test.ts 1 1s
e2e/tests/promiseReject.test.ts 1 967ms
e2e/tests/regexCharInPath.test.ts 1 962ms
e2e/tests/requireAfterTeardown.test.ts 1 921ms
e2e/tests/requireMain.test.ts 1 1s
e2e/tests/requireMainAfterCreateRequire.test.ts 1 966ms
e2e/tests/requireMainIsolateModules.test.ts 1 976ms
e2e/tests/requireMainResetModules.test.ts 2 2s
e2e/tests/requireV8Module.test.ts 1 30ms
e2e/tests/resetModules.test.ts 1 926ms
e2e/tests/resolve.test.ts 1 2s
e2e/tests/resolveGetPaths.test.ts 1 1s
e2e/tests/resolveNodeModule.test.ts 1 943ms
e2e/tests/resolveNoFileExtensions.test.ts 2 1s
e2e/tests/resolveWithPaths.test.ts 1 1s
e2e/tests/runProgrammatically.test.ts 2 575ms
e2e/tests/runTestsByPath.test.ts 1 2s
e2e/tests/runtimeInternalModuleRegistry.test.ts 1 1s
e2e/tests/selectProjects.test.ts 18 5s
e2e/tests/setImmediate.test.ts 1 904ms
e2e/tests/setupFilesAfterEnvConfig.test.ts 2 2s
e2e/tests/showConfig.test.ts 1 195ms
e2e/tests/skipBeforeAfterAll.test.ts 1 1s
e2e/tests/snapshot-unknown.test.ts 1 838ms
e2e/tests/snapshot.test.ts 9 14s
e2e/tests/snapshotMockFs.test.ts 1 883ms
e2e/tests/snapshotResolver.test.ts 1 823ms
e2e/tests/snapshotSerializers.test.ts 2 2s
e2e/tests/stackTrace.test.ts 7 5s
e2e/tests/stackTraceNoCaptureStackTrace.test.ts 1 899ms
e2e/tests/stackTraceSourceMaps.test.ts 1 2s
e2e/tests/stackTraceSourceMapsWithCoverage.test.ts 1 2s
e2e/tests/supportsDashedArgs.ts 2 968ms
e2e/tests/symbol.test.ts 1 49ms
e2e/tests/testEnvironment.test.ts 1 2s
e2e/tests/testEnvironmentAsync.test.ts 1 1s
e2e/tests/testEnvironmentCircus.test.ts 1 2s
e2e/tests/testEnvironmentCircusAsync.test.ts 1 2s
e2e/tests/testFailureExitCode.test.ts 2 4s
e2e/tests/testInRoot.test.ts 1 1s
e2e/tests/testNamePattern.test.ts 1 859ms
e2e/tests/testNamePatternSkipped.test.ts 1 991ms
e2e/tests/testPathPatternReporterMessage.test.ts 1 3s
e2e/tests/testResultsProcessor.test.ts 1 910ms
e2e/tests/testRetries.test.ts 4 3s
e2e/tests/testTodo.test.ts 5 4s
e2e/tests/timeouts.test.ts 4 4s
e2e/tests/timeoutsLegacy.test.ts 1 3 71ms
e2e/tests/timerResetMocks.test.ts 2 2s
e2e/tests/timerUseRealTimers.test.ts 1 1s
e2e/tests/toMatchInlineSnapshot.test.ts 12 24s
e2e/tests/toMatchInlineSnapshotWithRetries.test.ts 3 5s
e2e/tests/toMatchSnapshot.test.ts 9 17s
e2e/tests/toMatchSnapshotWithRetries.test.ts 2 4s
e2e/tests/toMatchSnapshotWithStringSerializer.test.ts 3 4s
e2e/tests/toThrowErrorMatchingInlineSnapshot.test.ts 4 4s
e2e/tests/toThrowErrorMatchingSnapshot.test.ts 5 4s
e2e/tests/transform.test.ts 16 27s
e2e/tests/transformLinkedModules.test.ts 1 783ms
e2e/tests/typescriptCoverage.test.ts 1 3s
e2e/tests/unexpectedToken.test.ts 3 3s
e2e/tests/useStderr.test.ts 1 1s
e2e/tests/v8Coverage.test.ts 2 2s
e2e/tests/verbose.test.ts 1 683ms
e2e/tests/version.test.ts 1 138ms
e2e/tests/watchModeNoAccess.test.ts 1 4s
e2e/tests/watchModeOnlyFailed.test.ts 1 1s
e2e/tests/watchModePatterns.test.ts 2 4s
e2e/tests/watchModeUpdateSnapshot.test.ts 1 1s
e2e/tests/workerForceExit.test.ts 2 5s
e2e/tests/wrongEnv.test.ts 5 4s
e2e/custom-test-sequencer/a.test.js 1 29ms
e2e/custom-test-sequencer/b.test.js 1 21ms
e2e/custom-test-sequencer/c.test.js 1 42ms
e2e/custom-test-sequencer/d.test.js 1 21ms
e2e/custom-test-sequencer/e.test.js 1 27ms
e2e/test-in-root/spec.js 1 19ms
e2e/test-in-root/test.js 1 37ms
e2e/timer-reset-mocks/after-reset-all-mocks/timerAndMock.test.js 2 30ms
e2e/timer-reset-mocks/with-reset-mocks/timerWithMock.test.js 1 34ms
e2e/v8-coverage/empty-sourcemap/test.ts 1 31ms
examples/angular/app.component.spec.ts 3 654ms
examples/angular/shared/data.service.spec.ts 2 431ms
examples/angular/shared/sub.service.spec.ts 1 109ms
examples/async/tests/user.test.js 8 96ms
examples/automatic-mocks/tests/automock.test.js 2 74ms
examples/automatic-mocks/tests/createMockFromModule.test.js 2 115ms
examples/automatic-mocks/tests/disableAutomocking.test.js 1 24ms
examples/enzyme/tests/CheckboxWithLabel-test.js 1 434ms
examples/getting-started/sum.test.js 1 78ms
examples/jquery/tests/display_user.test.js 1 196ms
examples/jquery/tests/fetch_current_user.test.js 2 196ms
examples/manual-mocks/tests/file_summarizer.test.js 1 87ms
examples/manual-mocks/tests/lodashMocking.test.js 1 109ms
examples/manual-mocks/tests/user.test.js 1 41ms
examples/manual-mocks/tests/userMocked.test.js 1 105ms
examples/module-mock/tests/full_mock.js 1 60ms
examples/module-mock/tests/mock_per_test.js 2 116ms
examples/module-mock/tests/partial_mock.js 1 215ms
examples/mongodb/test/db.test.js 1 236ms
examples/react-native/tests/intro.test.js 4 9s
examples/react-testing-library/tests/CheckboxWithLabel-test.js 1 469ms
examples/react/tests/CheckboxWithLabel-test.js 1 256ms
examples/snapshot/tests/clock.react.test.js 1 62ms
examples/snapshot/tests/link.react.test.js 4 181ms
examples/timer/tests/infinite_timer_game.test.js 1 94ms
examples/timer/tests/timer_game.test.js 3 74ms
examples/typescript/tests/calc.test.ts 6 276ms
examples/typescript/tests/CheckboxWithLabel-test.tsx 1 227ms
examples/typescript/tests/sub-test.ts 1 43ms
examples/typescript/tests/sum-test.ts 2 69ms
examples/typescript/tests/sum.test.js 2 100ms
packages/babel-jest/src/tests/index.ts 6 371ms
packages/babel-plugin-jest-hoist/src/tests/hoistPlugin.test.ts 4 347ms
packages/diff-sequences/src/tests/index.property.test.ts 7 357ms
packages/diff-sequences/src/tests/index.test.ts 48 195ms
packages/expect/src/tests/assertionCounts.test.ts 6 60ms
packages/expect/src/tests/asymmetricMatchers.test.ts 38 207ms
packages/expect/src/tests/extend.test.ts 10 99ms
packages/expect/src/tests/isError.test.ts 4 43ms
packages/expect/src/tests/matchers-toContain.property.test.ts 2 236ms
packages/expect/src/tests/matchers-toContainEqual.property.test.ts 2 287ms
packages/expect/src/tests/matchers-toEqual.property.test.ts 2 1s
packages/expect/src/tests/matchers-toStrictEqual.property.test.ts 3 394ms
packages/expect/src/tests/matchers.test.js 592 862ms
packages/expect/src/tests/spyMatchers.test.ts 248 395ms
packages/expect/src/tests/stacktrace.test.ts 3 69ms
packages/expect/src/tests/symbolInObjects.test.ts 3 33ms
packages/expect/src/tests/toEqual-dom.test.ts 12 99ms
packages/expect/src/tests/toThrowMatchers.test.ts 98 257ms
packages/expect/src/tests/utils.test.ts 41 147ms
packages/jest-circus/src/tests/afterAll.test.ts 6 6s
packages/jest-circus/src/tests/baseTest.test.ts 2 3s
packages/jest-circus/src/tests/circusItTestError.test.ts 8 300ms
packages/jest-circus/src/tests/circusItTodoTestError.test.ts 3 81ms
packages/jest-circus/src/tests/hooks.test.ts 3 4s
packages/jest-circus/src/tests/hooksError.test.ts 32 127ms
packages/jest-cli/src/tests/cli/args.test.ts 17 345ms
packages/jest-cli/src/init/tests/init.test.js 24 119ms
packages/jest-cli/src/init/tests/modifyPackageJson.test.ts 4 30ms
packages/jest-config/src/tests/Defaults.test.ts 1 672ms
packages/jest-config/src/tests/getMaxWorkers.test.ts 7 67ms
packages/jest-config/src/tests/normalize.test.js 118 798ms
packages/jest-config/src/tests/readConfig.test.ts 1 76ms
packages/jest-config/src/tests/readConfigs.test.ts 3 135ms
packages/jest-config/src/tests/resolveConfigPath.test.ts 10 183ms
packages/jest-config/src/tests/setFromArgv.test.ts 4 53ms
packages/jest-config/src/tests/validatePattern.test.ts 4 52ms
packages/jest-console/src/tests/bufferedConsole.test.ts 20 171ms
packages/jest-console/src/tests/CustomConsole.test.ts 23 115ms
packages/jest-console/src/tests/getConsoleOutput.test.ts 12 56ms
packages/jest-core/src/tests/FailedTestsCache.test.js 1 25ms
packages/jest-core/src/tests/getNoTestsFoundMessage.test.js 5 61ms
packages/jest-core/src/tests/globals.test.ts 1 22ms
packages/jest-core/src/tests/runJest.test.js 2 261ms
packages/jest-core/src/tests/SearchSource.test.ts 27 3s
packages/jest-core/src/tests/SnapshotInteractiveMode.test.js 13 89ms
packages/jest-core/src/tests/TestScheduler.test.js 8 520ms
packages/jest-core/src/tests/testSchedulerHelper.test.js 12 48ms
packages/jest-core/src/tests/watch.test.js 80 7s
packages/jest-core/src/tests/watchFileChanges.test.ts 1 2s
packages/jest-core/src/tests/watchFilenamePatternMode.test.js 2 165ms
packages/jest-core/src/tests/watchTestNamePatternMode.test.js 1 246ms
packages/jest-core/src/lib/tests/isValidPath.test.ts 3 166ms
packages/jest-core/src/lib/tests/logDebugMessages.test.ts 3 48ms
packages/jest-create-cache-key-function/src/tests/index.test.ts 1 75ms
packages/jest-diff/src/tests/diff.test.ts 107 625ms
packages/jest-diff/src/tests/diffStringsRaw.test.ts 2 55ms
packages/jest-diff/src/tests/getAlignedDiffs.test.ts 24 72ms
packages/jest-diff/src/tests/joinAlignedDiffs.test.ts 6 44ms
packages/jest-docblock/src/tests/index.test.ts 36 177ms
packages/jest-each/src/tests/array.test.ts 159 192ms
packages/jest-each/src/tests/index.test.ts 10 44ms
packages/jest-each/src/tests/template.test.ts 242 483ms
packages/jest-environment-jsdom/src/tests/jsdom_environment.test.ts 2 783ms
packages/jest-environment-node/src/tests/node_environment.test.ts 6 184ms
packages/jest-fake-timers/src/tests/legacyFakeTimers.test.ts 50 302ms
packages/jest-fake-timers/src/tests/modernFakeTimers.test.ts 40 317ms
packages/jest-get-type/src/tests/getType.test.ts 14 45ms
packages/jest-get-type/src/tests/isPrimitive.test.ts 18 36ms
packages/jest-globals/src/tests/index.ts 1 533ms
packages/jest-haste-map/src/tests/get_mock_name.test.js 1 22ms
packages/jest-haste-map/src/tests/includes_dotfiles.test.ts 1 337ms
packages/jest-haste-map/src/tests/index.test.js 44 1s
packages/jest-haste-map/src/tests/worker.test.js 7 100ms
packages/jest-haste-map/src/crawlers/tests/node.test.js 10 170ms
packages/jest-haste-map/src/crawlers/tests/watchman.test.js 8 153ms
packages/jest-haste-map/src/lib/tests/dependencyExtractor.test.js 15 56ms
packages/jest-haste-map/src/lib/tests/fast_path.test.js 5 29ms
packages/jest-haste-map/src/lib/tests/getPlatformExtension.test.js 1 35ms
packages/jest-haste-map/src/lib/tests/isRegExpSupported.test.js 2 31ms
packages/jest-haste-map/src/lib/tests/normalizePathSep.test.js 2 35ms
packages/jest-jasmine2/src/tests/concurrent.test.ts 3 24ms
packages/jest-jasmine2/src/tests/expectationResultFactory.test.ts 7 70ms
packages/jest-jasmine2/src/tests/hooksError.test.ts 32 51ms
packages/jest-jasmine2/src/tests/iterators.test.ts 4 43ms
packages/jest-jasmine2/src/tests/itTestError.test.ts 6 32ms
packages/jest-jasmine2/src/tests/itToTestAlias.test.ts 1 23ms
packages/jest-jasmine2/src/tests/pTimeout.test.ts 3 44ms
packages/jest-jasmine2/src/tests/queueRunner.test.ts 6 93ms
packages/jest-jasmine2/src/tests/reporter.test.ts 1 107ms
packages/jest-jasmine2/src/tests/Suite.test.ts 1 84ms
packages/jest-jasmine2/src/tests/todoError.test.ts 3 27ms
packages/jest-leak-detector/src/tests/index.test.ts 6 986ms
packages/jest-matcher-utils/src/tests/deepCyclicCopyReplaceable.test.ts 11 49ms
packages/jest-matcher-utils/src/tests/deepCyclicCopyReplaceableDom.test.ts 2 48ms
packages/jest-matcher-utils/src/tests/index.test.ts 48 391ms
packages/jest-matcher-utils/src/tests/printDiffOrStringify.test.ts 21 114ms
packages/jest-matcher-utils/src/tests/Replaceable.test.ts 17 111ms
packages/jest-message-util/src/tests/messages.test.ts 11 205ms
packages/jest-mock/src/tests/index.test.ts 84 509ms
packages/jest-regex-util/src/tests/index.test.ts 8 56ms
packages/jest-repl/src/tests/jest_repl.test.js 1 1s
packages/jest-repl/src/tests/runtime_cli.test.js 4 4s
packages/jest-reporters/src/tests/CoverageReporter.test.js 12 397ms
packages/jest-reporters/src/tests/CoverageWorker.test.js 2 199ms
packages/jest-reporters/src/tests/DefaultReporter.test.js 2 148ms
packages/jest-reporters/src/tests/generateEmptyCoverage.test.js 3 1s
packages/jest-reporters/src/tests/getResultHeader.test.js 4 30ms
packages/jest-reporters/src/tests/getSnapshotStatus.test.js 3 28ms
packages/jest-reporters/src/tests/getSnapshotSummary.test.js 4 49ms
packages/jest-reporters/src/tests/getWatermarks.test.ts 2 37ms
packages/jest-reporters/src/tests/NotifyReporter.test.ts 18 166ms
packages/jest-reporters/src/tests/SummaryReporter.test.js 4 366ms
packages/jest-reporters/src/tests/utils.test.ts 10 85ms
packages/jest-reporters/src/tests/VerboseReporter.test.js 11 425ms
packages/jest-resolve-dependencies/src/tests/dependency_resolver.test.ts 11 666ms
packages/jest-resolve/src/tests/isBuiltinModule.test.ts 4 36ms
packages/jest-resolve/src/tests/resolve.test.ts 16 1s
packages/jest-runner/src/tests/testRunner.test.ts 2 905ms
packages/jest-runtime/src/tests/instrumentation.test.ts 1 275ms
packages/jest-runtime/src/tests/runtime_create_mock_from_module.test.js 3 606ms
packages/jest-runtime/src/tests/runtime_environment.test.js 2 497ms
packages/jest-runtime/src/tests/runtime_internal_module.test.js 4 727ms
packages/jest-runtime/src/tests/runtime_jest_fn.js 4 479ms
packages/jest-runtime/src/tests/runtime_jest_spy_on.test.js 2 521ms
packages/jest-runtime/src/tests/runtime_mock.test.js 4 743ms
packages/jest-runtime/src/tests/runtime_module_directories.test.js 4 525ms
packages/jest-runtime/src/tests/runtime_node_path.test.js 4 1s
packages/jest-runtime/src/tests/runtime_require_actual.test.js 2 478ms
packages/jest-runtime/src/tests/runtime_require_cache.test.js 2 454ms
packages/jest-runtime/src/tests/runtime_require_mock.test.js 13 962ms
packages/jest-runtime/src/tests/runtime_require_module_no_ext.test.js 1 261ms
packages/jest-runtime/src/tests/runtime_require_module_or_mock_transitive_deps.test.js 6 2s
packages/jest-runtime/src/tests/runtime_require_module_or_mock.test.js 17 1s
packages/jest-runtime/src/tests/runtime_require_module.test.js 27 2s
packages/jest-runtime/src/tests/runtime_require_resolve.test.ts 5 707ms
packages/jest-runtime/src/tests/runtime_wrap.js 2 263ms
packages/jest-runtime/src/tests/Runtime-sourceMaps.test.js 1 584ms
packages/jest-runtime/src/tests/Runtime-statics.test.js 2 162ms
packages/jest-serializer/src/tests/index.test.ts 17 158ms
packages/jest-snapshot/src/tests/dedentLines.test.ts 17 94ms
packages/jest-snapshot/src/tests/InlineSnapshots.test.ts 22 1s
packages/jest-snapshot/src/tests/matcher.test.ts 1 131ms
packages/jest-snapshot/src/tests/mockSerializer.test.ts 10 45ms
packages/jest-snapshot/src/tests/printSnapshot.test.ts 71 1s
packages/jest-snapshot/src/tests/SnapshotResolver.test.ts 10 98ms
packages/jest-snapshot/src/tests/throwMatcher.test.ts 3 481ms
packages/jest-snapshot/src/tests/utils.test.ts 26 214ms
packages/jest-source-map/src/tests/getCallsite.test.ts 3 86ms
packages/jest-test-result/src/tests/formatTestResults.test.ts 1 53ms
packages/jest-test-sequencer/src/tests/test_sequencer.test.js 8 251ms
packages/jest-transform/src/tests/ScriptTransformer.test.ts 22 2s
packages/jest-transform/src/tests/shouldInstrument.test.ts 25 155ms
packages/jest-util/src/tests/createProcessObject.test.ts 4 81ms
packages/jest-util/src/tests/deepCyclicCopy.test.ts 12 86ms
packages/jest-util/src/tests/errorWithStack.test.ts 1 41ms
packages/jest-util/src/tests/formatTime.test.ts 11 82ms
packages/jest-util/src/tests/globsToMatcher.test.ts 4 56ms
packages/jest-util/src/tests/installCommonGlobals.test.ts 2 68ms
packages/jest-util/src/tests/isInteractive.test.ts 2 35ms
packages/jest-util/src/tests/isPromise.test.ts 10 30ms
packages/jest-validate/src/tests/validate.test.ts 23 283ms
packages/jest-validate/src/tests/validateCLIOptions.test.js 6 83ms
packages/jest-watcher/src/lib/tests/formatTestNameByPattern.test.ts 11 129ms
packages/jest-watcher/src/lib/tests/prompt.test.ts 3 91ms
packages/jest-watcher/src/lib/tests/scroll.test.ts 5 57ms
packages/jest-worker/src/tests/Farm.test.js 10 158ms
packages/jest-worker/src/tests/FifoQueue.test.js 3 48ms
packages/jest-worker/src/tests/index.test.js 8 230ms
packages/jest-worker/src/tests/PriorityQueue.test.js 5 63ms
packages/jest-worker/src/tests/process-integration.test.js 5 62ms
packages/jest-worker/src/tests/thread-integration.test.js 6 114ms
packages/jest-worker/src/tests/WorkerPool.test.js 3 51ms
packages/jest-worker/src/base/tests/BaseWorkerPool.test.js 11 653ms
packages/jest-worker/src/workers/tests/ChildProcessWorker.test.js 17 184ms
packages/jest-worker/src/workers/tests/NodeThreadsWorker.test.js 15 258ms
packages/jest-worker/src/workers/tests/processChild.test.js 10 135ms
packages/jest-worker/src/workers/tests/threadChild.test.js 10 120ms
packages/pretty-format/src/tests/AsymmetricMatcher.test.ts 38 137ms
packages/pretty-format/src/tests/ConvertAnsi.test.ts 6 43ms
packages/pretty-format/src/tests/DOMCollection.test.ts 10 64ms
packages/pretty-format/src/tests/DOMElement.test.ts 28 148ms
packages/pretty-format/src/tests/Immutable.test.ts 111 443ms
packages/pretty-format/src/tests/prettyFormat.test.ts 86 219ms
packages/pretty-format/src/tests/react.test.tsx 55 325ms
packages/pretty-format/src/tests/ReactElement.test.ts 3 64ms

 e2e/tests/asyncAndCallback.test.ts

✅ errors when a test both returns a promise and takes a callback

 e2e/tests/asyncRegenerator.test.ts

✅ successfully transpiles async

 e2e/tests/autoClearMocks.test.ts

✅ suite with auto-clear
✅ suite without auto-clear

 e2e/tests/autoResetMocks.test.ts

✅ suite with auto-reset
✅ suite without auto-reset

 e2e/tests/autoRestoreMocks.test.ts

✅ suite with auto-restore
✅ suite without auto-restore

 e2e/tests/babelPluginJestHoist.test.ts

✅ successfully runs the tests inside `babel-plugin-jest-hoist/`

 e2e/tests/badSourceMap.test.ts

✅ suite with test cases that contain malformed sourcemaps

 e2e/tests/beforeAllFiltered.ts

Correct BeforeAll run
  ✅ ensures the BeforeAll of ignored suite is not run

 e2e/tests/beforeEachQueue.ts

✅ does not work on jest-circus
Correct beforeEach order
  ⚪ ensures the correct order for beforeEach

 e2e/tests/callDoneTwice.test.ts

✅ `done()` should not be called more than once

 e2e/tests/chaiAssertionLibrary.ts

✅ chai assertion errors should display properly

 e2e/tests/circularInequality.test.ts

✅ handles circular inequality properly

 e2e/tests/circusConcurrentEach.test.ts

✅ works with concurrent.each
✅ works with concurrent.only.each

 e2e/tests/circusDeclarationErrors.test.ts

✅ defining tests and hooks asynchronously throws

 e2e/tests/clearCache.test.ts

jest --clearCache
  ✅ normal run results in cache directory being written
  ✅ clearCache results in deleted directory and exitCode 0

 e2e/tests/cliHandlesExactFilenames.test.ts

✅ CLI accepts exact file names if matchers matched
✅ CLI skips exact file names if no matchers matched

 e2e/tests/compareDomNodes.test.ts

✅ does not crash when expect involving a DOM node fails

 e2e/tests/config.test.ts

✅ config as JSON
✅ works with sane config JSON
✅ watchman config option is respected over default argv
✅ config from argv is respected with sane config JSON
✅ works with jsdom testEnvironmentOptions config JSON
✅ negated flags override previous flags

 e2e/tests/console.test.ts

✅ console printing
✅ console printing with --verbose
✅ does not print to console with --silent
✅ respects --noStackTrace
✅ respects noStackTrace in config
✅ the jsdom console is the same as the test console
✅ does not error out when using winston

 e2e/tests/consoleAfterTeardown.test.ts

✅ console printing

 e2e/tests/consoleLogOutputWhenRunInBand.test.ts

✅ prints console.logs when run with forceExit

 e2e/tests/coverageHandlebars.test.ts

✅ code coverage for Handlebars

 e2e/tests/coverageRemapping.test.ts

✅ maps code coverage against original source

 e2e/tests/coverageReport.test.ts

✅ outputs coverage report
✅ collects coverage only from specified file
✅ collects coverage only from multiple specified files
✅ collects coverage only from specified files avoiding dependencies
✅ json reporter printing with --coverage
✅ outputs coverage report as json
✅ outputs coverage report when text is requested
✅ outputs coverage report when text-summary is requested
✅ outputs coverage report when text and text-summary is requested
✅ does not output coverage report when html is requested
✅ collects coverage from duplicate files avoiding shared cache
✅ generates coverage when using the testRegex config param

 e2e/tests/coverageThreshold.test.ts

✅ exits with 1 if coverage threshold is not met
✅ exits with 1 if path threshold group is not found in coverage data
✅ exits with 0 if global threshold group is not found in coverage data
✅ excludes tests matched by path threshold groups from global group
✅ file is matched by all path and glob threshold groups

 e2e/tests/coverageTransformInstrumented.test.ts

✅ code coverage for transform instrumented code

 e2e/tests/coverageWithoutTransform.test.ts

✅ produces code coverage for uncovered files without transformer

 e2e/tests/createProcessObject.test.ts

✅ allows retrieving the current domain

 e2e/tests/customInlineSnapshotMatchers.test.ts

✅ works with custom inline snapshot matchers

 e2e/tests/customMatcherStackTrace.test.ts

✅ works with custom matchers
✅ custom async matchers

 e2e/tests/customReporters.test.ts

Custom Reporters Integration
  ✅ valid string format for adding reporters
  ✅ valid array format for adding reporters
  ✅ invalid format for adding reporters
  ✅ default reporters enabled
  ✅ TestReporter with all tests passing
  ✅ TestReporter with all tests failing
  ✅ IncompleteReporter for flexibility
  ✅ reporters can be default exports
  ✅ prints reporter errors

 e2e/tests/customResolver.test.ts

✅ use the custom resolver

 e2e/tests/customTestSequencers.test.ts

✅ run prioritySequence first sync
✅ run prioritySequence first async
✅ run failed tests async

 e2e/tests/debug.test.ts

jest --debug
  ✅ outputs debugging info before running the test

 e2e/tests/declarationErrors.test.ts

✅ errors if describe returns a Promise
✅ errors if describe returns something
✅ errors if describe throws

 e2e/tests/dependencyClash.test.ts

✅ does not require project modules from inside node_modules

 e2e/tests/detectOpenHandles.ts

✅ prints message about flag on slow tests
✅ prints message about flag on forceExit
✅ prints out info about open handlers
✅ does not report promises
✅ prints out info about open handlers from inside tests
on node >=11.10.0
  ✅ does not report ELD histograms
notify
  ✅ does not report --notify flag
on node >=11
  ✅ does not report timeouts using unref

 e2e/tests/domDiffing.test.ts

✅ should work without error

 e2e/tests/doneInHooks.test.ts

✅ `done()` works properly in hooks

 e2e/tests/dynamicRequireDependencies.ts

✅ successfully runs tests with dynamic dependencies

 e2e/tests/each.test.ts

✅ works with passing tests
✅ shows error message when not enough arguments are supplied to tests
✅ shows the correct errors in stderr when failing tests
✅ shows only the tests with .only as being ran
✅ shows only the tests without .skip as being ran
✅ runs only the describe.only.each tests
✅ formats args with pretty format when given %p

 e2e/tests/emptyDescribeWithHooks.test.ts

✅ hook in empty describe
✅ hook in describe with skipped test
✅ hook in empty nested describe
✅ multiple hooks in empty describe

 e2e/tests/emptySuiteError.test.ts

JSON Reporter
  ✅ fails the test suite if it contains no tests

 e2e/tests/env.test.ts

Environment override
  ✅ uses jsdom when specified
  ✅ uses node as default from package.json
  ✅ uses node when specified
  ✅ fails when the env is not available
Environment equivalent
  ✅ uses jsdom
  ✅ uses node

 e2e/tests/environmentAfterTeardown.test.ts

✅ prints useful error for environment methods after test is done

 e2e/tests/errorOnDeprecated.test.ts

✅ does not work on jest-circus
⚪ fail.test.js errors in errorOnDeprecated mode
⚪ jasmine.addMatchers.test.js errors in errorOnDeprecated mode
⚪ jasmine.any.test.js errors in errorOnDeprecated mode
⚪ jasmine.anything.test.js errors in errorOnDeprecated mode
⚪ jasmine.arrayContaining.test.js errors in errorOnDeprecated mode
⚪ jasmine.createSpy.test.js errors in errorOnDeprecated mode
⚪ jasmine.objectContaining.test.js errors in errorOnDeprecated mode
⚪ jasmine.stringMatching.test.js errors in errorOnDeprecated mode
⚪ pending.test.js errors in errorOnDeprecated mode
⚪ spyOn.test.js errors in errorOnDeprecated mode
⚪ spyOnProperty.test.js errors in errorOnDeprecated mode
⚪ defaultTimeoutInterval.test.js errors in errorOnDeprecated mode
⚪ fail.test.js errors when not in errorOnDeprecated mode
⚪ jasmine.addMatchers.test.js passes when not in errorOnDeprecated mode
⚪ jasmine.any.test.js passes when not in errorOnDeprecated mode
⚪ jasmine.anything.test.js passes when not in errorOnDeprecated mode
⚪ jasmine.arrayContaining.test.js passes when not in errorOnDeprecated mode
⚪ jasmine.createSpy.test.js passes when not in errorOnDeprecated mode
⚪ jasmine.objectContaining.test.js passes when not in errorOnDeprecated mode
⚪ jasmine.stringMatching.test.js passes when not in errorOnDeprecated mode
⚪ pending.test.js passes when not in errorOnDeprecated mode
⚪ spyOn.test.js passes when not in errorOnDeprecated mode
⚪ spyOnProperty.test.js errors when not in errorOnDeprecated mode
⚪ defaultTimeoutInterval.test.js passes when not in errorOnDeprecated mode

 e2e/tests/esmConfigFile.test.ts

✅ reads config from cjs file
on node ^12.17.0 || >=13.2.0
  ✅ reads config from mjs file
  ✅ reads config from js file when package.json#type=module

 e2e/tests/executeTestsOnceInMpr.ts

✅ Tests are executed only once even in an MPR

 e2e/tests/existentRoots.test.ts

✅ error when rootDir does not exist
✅ error when rootDir is a file
✅ error when roots directory does not exist
✅ error when roots is a file

 e2e/tests/expectAsyncMatcher.test.ts

✅ works with passing tests
✅ shows the correct errors in stderr when failing tests

 e2e/tests/expectInVm.test.ts

✅ expect works correctly with RegExps created inside a VM

 e2e/tests/extraGlobals.test.ts

✅ works with injected globals

 e2e/tests/failureDetailsProperty.test.ts

✅ that the failureDetails property is set

 e2e/tests/failures.test.ts

✅ not throwing Error objects
✅ works with node assert
✅ works with assertions in separate files
✅ works with async failures
✅ works with snapshot failures
✅ works with snapshot failures with hint
✅ errors after test has completed

 e2e/tests/fakePromises.test.ts

Fake promises
  ✅ should be possible to resolve with fake timers using immediates
  ✅ should be possible to resolve with fake timers using asap

 e2e/tests/fatalWorkerError.test.ts

✅ fails a test that terminates the worker with a fatal error

 e2e/tests/filter.test.ts

Dynamic test filtering
  ✅ uses the default JSON option
  ✅ uses the CLI option
  ✅ ignores the filter if requested to do so
  ✅ throws when you return clowny stuff
  ✅ will call setup on filter before filtering
  ✅ will print error when filter throws
  ✅ will return no results when setup hook throws

 e2e/tests/findRelatedFiles.test.ts

--findRelatedTests flag
  ✅ runs tests related to filename
  ✅ runs tests related to uppercased filename on case-insensitive os
  ✅ runs tests related to filename with a custom dependency extractor
  ✅ generates coverage report for filename
  ✅ coverage configuration is applied correctly

 e2e/tests/focusedTests.test.ts

✅ runs only "it.only" tests

 e2e/tests/forceExit.test.ts

✅ exits the process after test are done but before timers complete

 e2e/tests/generatorMock.test.ts

✅ mock works with generator

 e2e/tests/global-mutation.test.ts

✅ can redefine global

 e2e/tests/global.test.ts

✅ globals are properly defined

 e2e/tests/globals.test.ts

✅ basic test constructs
✅ interleaved describe and test children order
✅ skips
✅ only
✅ cannot have describe with no implementation
✅ cannot test with no implementation
✅ skips with expand arg
✅ only with expand arg
✅ cannot test with no implementation with expand arg
✅ function as descriptor

 e2e/tests/globalSetup.test.ts

✅ globalSetup is triggered once before all test suites
✅ jest throws an error when globalSetup does not export a function
✅ globalSetup function gets jest config object as a parameter
✅ should call globalSetup function of multiple projects
✅ should not call a globalSetup of a project if there are no tests to run from this project
✅ should not call any globalSetup if there are no tests to run
✅ globalSetup works with default export
✅ globalSetup throws with named export
✅ should not transpile the transformer
✅ should transform node_modules if configured by transformIgnorePatterns

 e2e/tests/globalTeardown.test.ts

✅ globalTeardown is triggered once after all test suites
✅ jest throws an error when globalTeardown does not export a function
✅ globalTeardown function gets jest config object as a parameter
✅ should call globalTeardown function of multiple projects
✅ should not call a globalTeardown of a project if there are no tests to run from this project
✅ globalTeardown works with default export
✅ globalTeardown throws with named export

 e2e/tests/hasteMapMockChanged.test.ts

✅ should not warn when a mock file changes

 e2e/tests/hasteMapSha1.test.ts

✅ exits the process after test are done but before timers complete

 e2e/tests/hasteMapSize.test.ts

✅ reports the correct file size
✅ updates the file size when a file changes

 e2e/tests/importedGlobals.test.ts

✅ imported globals

 e2e/tests/injectGlobals.test.ts

✅ globals are undefined if passed `false` from CLI
✅ globals are undefined if passed `false` from config

 e2e/tests/jasmineAsync.test.ts

async jasmine
  ✅ works with beforeAll
  ✅ works with beforeEach
  ✅ works with afterAll
  ✅ works with afterEach
  ✅ works with fit
  ✅ works with xit
  ✅ throws when not a promise is returned
  ✅ tests async promise code
  ✅ works with concurrent
  ✅ works with concurrent within a describe block when invoked with testNamePattern
  ✅ works with concurrent.each
  ✅ works with concurrent.only.each
  ✅ doesn't execute more than 5 tests simultaneously
  ✅ async test fails
  ✅ generator test

 e2e/tests/jasmineAsyncWithPendingDuringTest.ts

async jasmine with pending during test
  ✅ does not work on jest-circus
  ⚪ should be reported as a pending test

 e2e/tests/jest.config.js.test.ts

✅ works with jest.config.js
✅ traverses directory tree up until it finds jest.config
✅ invalid JS in jest.config.js

 e2e/tests/jest.config.ts.test.ts

✅ works with jest.config.ts
✅ works with tsconfig.json
✅ traverses directory tree up until it finds jest.config
✅ it does type check the config
✅ invalid JS in jest.config.ts

 e2e/tests/jestChangedFiles.test.ts

✅ gets hg SCM roots and dedupes them
✅ gets git SCM roots and dedupes them
✅ gets mixed git and hg SCM roots and dedupes them
✅ gets changed files for git
✅ monitors only root paths for git
✅ does not find changes in files with no diff, for git
✅ handles a bad revision for "changedSince", for git
❌ gets changed files for hg
	Error: abort: empty revision range
✅ monitors only root paths for hg
✅ handles a bad revision for "changedSince", for hg

 e2e/tests/jestEnvironmentJsdom.test.ts

✅ check is not leaking memory

 e2e/tests/jestRequireActual.test.ts

✅ understands dependencies using jest.requireActual

 e2e/tests/jestRequireMock.test.ts

✅ understands dependencies using jest.requireMock

 e2e/tests/json.test.ts

✅ JSON is available in the global scope
✅ JSON.parse creates objects from within this context

 e2e/tests/jsonReporter.test.ts

JSON Reporter
  ✅ writes test result to sum.result.json
  ✅ outputs coverage report

 e2e/tests/lifecycles.ts

✅ suite with invalid assertions in afterAll

 e2e/tests/listTests.test.ts

--listTests flag
  ✅ causes tests to be printed in different lines
  ✅ causes tests to be printed out as JSON when using the --json flag

 e2e/tests/locationInResults.test.ts

✅ defaults to null for location
✅ adds correct location info when provided with flag

 e2e/tests/logHeapUsage.test.ts

✅ logs memory usage

 e2e/tests/mockNames.test.ts

✅ suite without mock name, mock called
✅ suite without mock name, mock not called
✅ suite with mock name, expect mock not called
✅ suite with mock name, mock called, expect fail
✅ suite with mock name, mock called 5 times
✅ suite with mock name, mock not called 5 times, expect fail
✅ suite with mock name, mock called
✅ suite with mock name, mock not called

 e2e/tests/modernFakeTimers.test.ts

modern implementation of fake timers
  ✅ should be possible to use modern implementation from config
  ✅ should be possible to use modern implementation from jest-object

 e2e/tests/moduleNameMapper.test.ts

✅ moduleNameMapper wrong configuration
✅ moduleNameMapper wrong array configuration
✅ moduleNameMapper correct configuration
✅ moduleNameMapper correct configuration mocking module of absolute path
✅ moduleNameMapper with mocking

 e2e/tests/moduleParentNullInTest.ts

✅ module.parent should be null in test files

 e2e/tests/multiProjectRunner.test.ts

✅ --listTests doesn't duplicate the test files
✅ can pass projects or global config
✅ "No tests found" message for projects
✅ allows a single non-root project
✅ allows a single non-root project
✅ correctly runs a single non-root project
✅ correctly runs a single non-root project
✅ projects can be workspaces with non-JS/JSON files
✅ objects in project configuration
✅ allows a single project
✅ resolves projects and their <rootDir> properly
✅ Does transform files with the corresponding project transformer
doesn't bleed module file extensions resolution with multiple workers
  ✅ external config files
  ✅ inline config files

 e2e/tests/nativeAsyncMock.test.ts

✅ mocks async functions

 e2e/tests/nativeEsm.test.ts

✅ test config is without transform
on node ^12.16.0 || >=13.7.0
  ✅ runs test with native ESM
on node >=14.3.0
  ⚪ supports top-level await

 e2e/tests/nativeEsmTypescript.test.ts

on node ^12.16.0 || >=13.7.0
  ✅ runs TS test with native ESM

 e2e/tests/nestedEventLoop.test.ts

✅ works with nested event loops

 e2e/tests/nestedTestDefinitions.test.ts

✅ print correct error message with nested test definitions outside describe
✅ print correct error message with nested test definitions inside describe
✅ print correct message when nesting describe inside it
✅ print correct message when nesting a hook inside it

 e2e/tests/nodePath.test.ts

✅ supports NODE_PATH

 e2e/tests/noTestFound.test.ts

Coverage Report
  ✅ outputs coverage report
File path not found in mulit-project scenario
  ✅ outputs coverage report

 e2e/tests/noTestsFound.test.ts

No tests are found
  ✅ fails the test suite in standard situation
  ✅ doesn't fail the test suite if --passWithNoTests passed
  ✅ doesn't fail the test suite if using --lastCommit
  ✅ doesn't fail the test suite if using --onlyChanged
  ✅ doesn't fail the test suite if using --findRelatedTests

 e2e/tests/onlyChanged.test.ts

✅ run for "onlyChanged" and "changedSince"
✅ run only changed files
✅ report test coverage for only changed files
✅ report test coverage of source on test file change under only changed files
✅ do not pickup non-tested files when reporting coverage on only changed files
✅ collect test coverage when using onlyChanged
✅ onlyChanged in config is overwritten by --all or testPathPattern
❌ gets changed files for hg
	Error: expect(received).toMatch(expected)
✅ path on Windows is case-insensitive

 e2e/tests/onlyFailuresNonWatch.test.ts

✅ onlyFailures flag works in non-watch mode

 e2e/tests/overrideGlobals.test.ts

✅ overriding native promise does not freeze Jest
✅ has a duration even if time is faked

 e2e/tests/pnp.test.ts

✅ successfully runs the tests inside `pnp/`

 e2e/tests/presets.test.ts

✅ supports json preset
✅ supports js preset

 e2e/tests/processExit.test.ts

✅ prints stack trace pointing to process.exit call

 e2e/tests/promiseReject.test.ts

 e2e/tests/regexCharInPath.test.ts

Regex Char In Path
  ✅ parses paths containing regex chars correctly

 e2e/tests/requireAfterTeardown.test.ts

✅ prints useful error for requires after test is done

 e2e/tests/requireMain.test.ts

✅ provides `require.main` set to test suite module

 e2e/tests/requireMainAfterCreateRequire.test.ts

on node >=12.2.0
  ✅ `require.main` not undefined after createRequire

 e2e/tests/requireMainIsolateModules.test.ts

✅ `require.main` on using `jest.isolateModules` should not be undefined

 e2e/tests/requireMainResetModules.test.ts

✅ `require.main` on using `--resetModules='true'` should not be undefined
✅ `require.main` on using `jest.resetModules()` should not be undefined

 e2e/tests/requireV8Module.test.ts

✅ v8 module

 e2e/tests/resetModules.test.ts

✅ jest.resetModules should not error when _isMockFunction is defined but not boolean

 e2e/tests/resolve.test.ts

✅ resolve platform modules

 e2e/tests/resolveGetPaths.test.ts

✅ require.resolve.paths

 e2e/tests/resolveNodeModule.test.ts

✅ resolve node module

 e2e/tests/resolveNoFileExtensions.test.ts

✅ show error message with matching files
✅ show error message when no js moduleFileExtensions

 e2e/tests/resolveWithPaths.test.ts

✅ require.resolve with paths

 e2e/tests/runProgrammatically.test.ts

✅ run Jest programmatically cjs
✅ run Jest programmatically esm

 e2e/tests/runTestsByPath.test.ts

✅ runs tests by exact path

 e2e/tests/runtimeInternalModuleRegistry.test.ts

Runtime Internal Module Registry
  ✅ correctly makes use of internal module registry when requiring modules

 e2e/tests/selectProjects.test.ts

Given a config with two named projects, first-project and second-project when Jest is started with `--selectProjects first-project`
  ✅ runs the tests in the first project only
  ✅ prints that only first-project will run
Given a config with two named projects, first-project and second-project when Jest is started with `--selectProjects second-project`
  ✅ runs the tests in the second project only
  ✅ prints that only second-project will run
Given a config with two named projects, first-project and second-project when Jest is started with `--selectProjects first-project second-project`
  ✅ runs the tests in the first and second projects
  ✅ prints that both first-project and second-project will run
Given a config with two named projects, first-project and second-project when Jest is started without providing `--selectProjects`
  ✅ runs the tests in the first and second projects
  ✅ does not print which projects are run
Given a config with two named projects, first-project and second-project when Jest is started with `--selectProjects third-project`
  ✅ fails
  ✅ prints that no project was found
Given a config with two projects, first-project and an unnamed project when Jest is started with `--selectProjects first-project`
  ✅ runs the tests in the first project only
  ✅ prints that a project does not have a name
  ✅ prints that only first-project will run
Given a config with two projects, first-project and an unnamed project when Jest is started without providing `--selectProjects`
  ✅ runs the tests in the first and second projects
  ✅ does not print that a project has no name
Given a config with two projects, first-project and an unnamed project when Jest is started with `--selectProjects third-project`
  ✅ fails
  ✅ prints that a project does not have a name
  ✅ prints that no project was found

 e2e/tests/setImmediate.test.ts

✅ setImmediate

 e2e/tests/setupFilesAfterEnvConfig.test.ts

setupFilesAfterEnv
  ✅ requires multiple setup files before each file in the suite
  ✅ requires setup files *after* the test runners are required

 e2e/tests/showConfig.test.ts

✅ --showConfig outputs config info and exits

 e2e/tests/skipBeforeAfterAll.test.ts

✅ correctly skip `beforeAll`s in skipped tests

 e2e/tests/snapshot-unknown.test.ts

Snapshot serializers
  ✅ renders snapshot

 e2e/tests/snapshot.test.ts

Snapshot
  ✅ stores new snapshots on the first run
  ✅ works with escaped characters
  ✅ works with escaped regex
  ✅ works with template literal substitutions
Snapshot Validation
  ✅ does not save snapshots in CI mode by default
  ✅ works on subsequent runs without `-u`
  ✅ deletes the snapshot if the test suite has been removed
  ✅ deletes a snapshot when a test does removes all the snapshots
  ✅ updates the snapshot when a test removes some snapshots

 e2e/tests/snapshotMockFs.test.ts

✅ store snapshot even if fs is mocked

 e2e/tests/snapshotResolver.test.ts

Custom snapshot resolver
  ✅ Resolves snapshot files using custom resolver

 e2e/tests/snapshotSerializers.test.ts

Snapshot serializers
  ✅ renders snapshot
  ✅ compares snapshots correctly

 e2e/tests/stackTrace.test.ts

Stack Trace
  ✅ prints a stack trace for runtime errors
  ✅ does not print a stack trace for runtime errors when --noStackTrace is given
  ✅ prints a stack trace for matching errors
  ✅ does not print a stack trace for matching errors when --noStackTrace is given
  ✅ prints a stack trace for errors
  ✅ prints a stack trace for errors without message in stack trace
  ✅ does not print a stack trace for errors when --noStackTrace is given

 e2e/tests/stackTraceNoCaptureStackTrace.test.ts

✅ prints a usable stack trace even if no Error.captureStackTrace

 e2e/tests/stackTraceSourceMaps.test.ts

✅ processes stack traces and code frames with source maps

 e2e/tests/stackTraceSourceMapsWithCoverage.test.ts

✅ processes stack traces and code frames with source maps with coverage

 e2e/tests/supportsDashedArgs.ts

✅ works with passing tests
✅ throws error for unknown dashed & camelcase args

 e2e/tests/symbol.test.ts

✅ Symbol deletion

 e2e/tests/testEnvironment.test.ts

✅ respects testEnvironment docblock

 e2e/tests/testEnvironmentAsync.test.ts

✅ triggers setup/teardown hooks

 e2e/tests/testEnvironmentCircus.test.ts

✅ calls testEnvironment handleTestEvent

 e2e/tests/testEnvironmentCircusAsync.test.ts

✅ calls asynchronous handleTestEvent in testEnvironment

 e2e/tests/testFailureExitCode.test.ts

✅ exits with a specified code when test fail
✅ exits with a specified code when bailing from a failed test

 e2e/tests/testInRoot.test.ts

✅ runs tests in only test.js and spec.js

 e2e/tests/testNamePattern.test.ts

✅ testNamePattern

 e2e/tests/testNamePatternSkipped.test.ts

✅ testNamePattern skipped

 e2e/tests/testPathPatternReporterMessage.test.ts

✅ prints a message with path pattern at the end

 e2e/tests/testResultsProcessor.test.ts

✅ testNamePattern

 e2e/tests/testRetries.test.ts

Test Retries
  ✅ retries failed tests
  ✅ reporter shows more than 1 invocation if test is retried
  ✅ reporter shows 1 invocation if tests are not retried
  ✅ tests are not retried if beforeAll hook failure occurs

 e2e/tests/testTodo.test.ts

✅ works with all statuses
✅ shows error messages when called with no arguments
✅ shows error messages when called with multiple arguments
✅ shows error messages when called with invalid argument
✅ shows todo messages when in verbose mode

 e2e/tests/timeouts.test.ts

✅ exceeds the timeout
✅ does not exceed the timeout
✅ exceeds the command line testTimeout
✅ does not exceed the command line testTimeout

 e2e/tests/timeoutsLegacy.test.ts

✅ does not work on jest-circus
⚪ exceeds the timeout set using jasmine.DEFAULT_TIMEOUT_INTERVAL
⚪ does not exceed the timeout using jasmine.DEFAULT_TIMEOUT_INTERVAL
⚪ can read and write jasmine.DEFAULT_TIMEOUT_INTERVAL

 e2e/tests/timerResetMocks.test.ts

✅ run timers after resetAllMocks test
✅ run timers with resetMocks in config test

 e2e/tests/timerUseRealTimers.test.ts

✅ useRealTimers cancels "timers": "fake" for whole test file

 e2e/tests/toMatchInlineSnapshot.test.ts

✅ basic support
✅ do not indent empty lines
✅ handles property matchers
✅ removes obsolete external snapshots
✅ supports async matchers
✅ supports async tests
✅ writes snapshots with non-literals in expect(...)
✅ handles mocking native modules prettier relies on
✅ supports custom matchers
✅ supports custom matchers with property matcher
✅ multiple custom matchers and native matchers
✅ indentation is correct in the presences of existing snapshots

 e2e/tests/toMatchInlineSnapshotWithRetries.test.ts

✅ works with a single snapshot
✅ works when a different assertion is failing
✅ works when multiple tests have snapshots but only one of them failed multiple times

 e2e/tests/toMatchSnapshot.test.ts

✅ basic support
✅ error thrown before snapshot
✅ first snapshot fails, second passes
✅ does not mark snapshots as obsolete in skipped tests
✅ accepts custom snapshot name
✅ handles property matchers
✅ handles invalid property matchers
✅ handles property matchers with hint
✅ handles property matchers with deep properties

 e2e/tests/toMatchSnapshotWithRetries.test.ts

✅ works with a single snapshot
✅ works when multiple tests have snapshots but only one of them failed multiple times

 e2e/tests/toMatchSnapshotWithStringSerializer.test.ts

✅ empty external
✅ empty internal ci false
✅ undefined internal ci true

 e2e/tests/toThrowErrorMatchingInlineSnapshot.test.ts

✅ works fine when function throws error
✅ updates existing snapshot
✅ cannot be used with .not
✅ should support rejecting promises

 e2e/tests/toThrowErrorMatchingSnapshot.test.ts

✅ works fine when function throws error
✅ throws the error if tested function didn't throw error
✅ accepts custom snapshot name
✅ cannot be used with .not
✅ should support rejecting promises

 e2e/tests/transform.test.ts

babel-jest
  ✅ runs transpiled code
  ✅ instruments only specific files and collects coverage
babel-jest ignored
  ✅ tells user to match ignored files
babel-jest with manual transformer
  ✅ runs transpiled code
no babel-jest
  ✅ fails with syntax error on flow types
  ✅ instrumentation with no babel-jest
custom transformer
  ✅ proprocesses files
  ✅ instruments files
multiple-transformers
  ✅ transforms dependencies using specific transformers
ecmascript-modules-support
  ✅ runs transpiled code
transformer-config
  ✅ runs transpiled code
  ✅ instruments only specific files and collects coverage
transformer caching
  ✅ does not rerun transform within worker
transform-environment
  ✅ should transform the environment
transform-runner
  ✅ should transform runner
transform-testrunner
  ✅ should transform testRunner

 e2e/tests/transformLinkedModules.test.ts

✅ should transform linked modules

 e2e/tests/typescriptCoverage.test.ts

✅ instruments and collects coverage for typescript files

 e2e/tests/unexpectedToken.test.ts

✅ triggers unexpected token error message for non-JS assets
✅ triggers unexpected token error message for untranspiled node_modules
✅ does not trigger unexpected token error message for regular syntax errors

 e2e/tests/useStderr.test.ts

✅ no tests found message is redirected to stderr

 e2e/tests/v8Coverage.test.ts

✅ prints coverage with missing sourcemaps
✅ prints coverage with empty sourcemaps

 e2e/tests/verbose.test.ts

✅ Verbose Reporter

 e2e/tests/version.test.ts

✅ works with jest.config.js

 e2e/tests/watchModeNoAccess.test.ts

✅ does not re-run tests when only access time is modified

 e2e/tests/watchModeOnlyFailed.test.ts

✅ can press "f" to run only failed tests

 e2e/tests/watchModePatterns.test.ts

✅ can press "p" to filter by file name
✅ can press "t" to filter by test name

 e2e/tests/watchModeUpdateSnapshot.test.ts

✅ can press "u" to update snapshots

 e2e/tests/workerForceExit.test.ts

✅ prints a warning if a worker is force exited
✅ force exits a worker that fails to exit gracefully

 e2e/tests/wrongEnv.test.ts

Wrong globals for environment
  ✅ print useful error for window
  ✅ print useful error for document
  ✅ print useful error for navigator
  ✅ print useful error for unref
  ✅ print useful error when it explodes during evaluation

 e2e/custom-test-sequencer/a.test.js

✅ a

 e2e/custom-test-sequencer/b.test.js

✅ b

 e2e/custom-test-sequencer/c.test.js

✅ c

 e2e/custom-test-sequencer/d.test.js

✅ d

 e2e/custom-test-sequencer/e.test.js

✅ e

 e2e/test-in-root/spec.js

✅ stub

 e2e/test-in-root/test.js

✅ stub

 e2e/timer-reset-mocks/after-reset-all-mocks/timerAndMock.test.js

timers
  ✅ should work before calling resetAllMocks
  ✅ should not break after calling resetAllMocks

 e2e/timer-reset-mocks/with-reset-mocks/timerWithMock.test.js

timers
  ✅ should work before calling resetAllMocks

 e2e/v8-coverage/empty-sourcemap/test.ts

✅ dummy-test

 examples/angular/app.component.spec.ts

AppComponent
  ✅ should create the app
  ✅ should have as title 'angular'
  ✅ should render title in a h1 tag

 examples/angular/shared/data.service.spec.ts

Service: DataService
  ✅ should create service
  ✅ should return the right title

 examples/angular/shared/sub.service.spec.ts

Service: SubService
  ✅ should create service

 examples/async/tests/user.test.js

✅ works with resolves
✅ works with promises
✅ works with async/await
✅ works with async/await and resolves
✅ tests error with rejects
✅ tests error with promises
✅ tests error with async/await
✅ tests error with async/await and rejects

 examples/automatic-mocks/tests/automock.test.js

✅ if utils are mocked
✅ mocked implementation

 examples/automatic-mocks/tests/createMockFromModule.test.js

✅ implementation created by automock
✅ implementation created by jest.createMockFromModule

 examples/automatic-mocks/tests/disableAutomocking.test.js

✅ original implementation

 examples/enzyme/tests/CheckboxWithLabel-test.js

✅ CheckboxWithLabel changes the text after click

 examples/getting-started/sum.test.js

✅ adds 1 + 2 to equal 3

 examples/jquery/tests/display_user.test.js

✅ displays a user after a click

 examples/jquery/tests/fetch_current_user.test.js

✅ calls into $.ajax with the correct params
✅ calls the callback when $.ajax requests are finished

 examples/manual-mocks/tests/file_summarizer.test.js

listFilesInDirectorySync
  ✅ includes all files in the directory in the summary

 examples/manual-mocks/tests/lodashMocking.test.js

✅ if lodash head is mocked

 examples/manual-mocks/tests/user.test.js

✅ if orginal user model

 examples/manual-mocks/tests/userMocked.test.js

✅ if user model is mocked

 examples/module-mock/tests/full_mock.js

✅ does a full mock

 examples/module-mock/tests/mock_per_test.js

define mock per test
  ✅ uses mocked module
  ✅ uses actual module

 examples/module-mock/tests/partial_mock.js

✅ does a partial mock

 examples/mongodb/test/db.test.js

✅ should aggregate docs from collection

 examples/react-native/tests/intro.test.js

✅ renders correctly
✅ renders the ActivityIndicator component
✅ renders the TextInput component
✅ renders the FlatList component

 examples/react-testing-library/tests/CheckboxWithLabel-test.js

✅ CheckboxWithLabel changes the text after click

 examples/react/tests/CheckboxWithLabel-test.js

✅ CheckboxWithLabel changes the text after click

 examples/snapshot/tests/clock.react.test.js

✅ renders correctly
✅ renders correctly
✅ renders as an anchor when no page is set
✅ properly escapes quotes
✅ changes the class when hovered

 examples/timer/tests/infinite_timer_game.test.js

✅ schedules a 10-second timer after 1 second

 examples/timer/tests/timer_game.test.js

timerGame
  ✅ waits 1 second before ending the game
  ✅ calls the callback after 1 second via runAllTimers
  ✅ calls the callback after 1 second via advanceTimersByTime

 examples/typescript/tests/calc.test.ts

calc - mocks
  ✅ returns result from subtract
  ✅ returns result from sum
  ✅ adds last result to memory
  ✅ subtracts last result to memory
  ✅ clears the memory
  ✅ throws an error when invalid Op is passed

 examples/typescript/tests/CheckboxWithLabel-test.tsx

✅ CheckboxWithLabel changes the text after click

 examples/typescript/tests/sub-test.ts

✅ subtracts 5 - 1 to equal 4 in TypeScript

 examples/typescript/tests/sum-test.ts

✅ adds 1 + 2 to equal 3 in TScript
✅ adds 1 + 2 to equal 3 in JavaScript

 examples/typescript/tests/sum.test.js

✅ adds 1 + 2 to equal 3 in Typescript
✅ adds 1 + 2 to equal 3 in JavaScript

 packages/babel-jest/src/tests/index.ts

✅ Returns source string with inline maps when no transformOptions is passed
✅ can pass null to createTransformer
caller option correctly merges from defaults and options
  ✅ {"supportsDynamicImport":true,"supportsStaticESM":true} -> {"supportsDynamicImport":true,"supportsStaticESM":true}
  ✅ {"supportsDynamicImport":false,"supportsStaticESM":false} -> {"supportsDynamicImport":false,"supportsStaticESM":false}
  ✅ {"supportsStaticESM":false} -> {"supportsDynamicImport":false,"supportsStaticESM":false}
  ✅ {"supportsDynamicImport":true} -> {"supportsDynamicImport":true,"supportsStaticESM":false}

 packages/babel-plugin-jest-hoist/src/tests/hoistPlugin.test.ts

babel-plugin-jest-hoist
  ✅ automatic react runtime
  ✅ top level mocking
  ✅ within a block
  ✅ within a block with no siblings

 packages/diff-sequences/src/tests/index.property.test.ts

✅ should be reflexive
✅ should find the same number of common items when switching the inputs
✅ should have at most the length of its inputs
✅ should have at most the same number of each character as its inputs
✅ should be a subsequence of its inputs
✅ should be no-op when passing common items
✅ should find the exact common items when one array is subarray of the other

 packages/diff-sequences/src/tests/index.test.ts

invalid arg length
  ✅ is not a number
  ✅ Infinity is not a safe integer
  ✅ Not a Number is not a safe integer
  ✅ MAX_SAFE_INTEGER + 1 is not a safe integer
  ✅ MIN_SAFE_INTEGER - 1 is not a safe integer
  ✅ is a negative integer
invalid arg callback
  ✅ null is not a function
  ✅ undefined is not a function
input callback encapsulates comparison zero and negative zero
  ✅ are not common according to Object.is method
  ✅ are common according to === operator
input callback encapsulates comparison Not a Number
  ✅ is common according to Object.is method
  ✅ is not common according to === operator
input callback encapsulates sequences
  ✅ arrays of strings
  ✅ string and array of strings
  ✅ strings
no common items negative zero is equivalent to zero for length
  ✅ of a
  ✅ of b
  ✅ of a and b
no common items
  ✅ a empty and b empty
  ✅ a empty and b non-empty
  ✅ a non-empty and b empty
no common items a non-empty and b non-empty
  ✅ baDeltaLength 0 even
  ✅ baDeltaLength 1 odd
  ✅ baDeltaLength 2 even
  ✅ baDeltaLength 7 odd
only common items
  ✅ length 1
  ✅ length 2
all common items outside
  ✅ preceding changes
  ✅ following change
  ✅ preceding and following changes in one sequence
some common items inside and outside
  ✅ preceding changes adjacent to common in both sequences
  ✅ following changes adjacent to common in both sequences
all common items inside non-recursive
  ✅ move from start to end relative to change
  ✅ move from start to end relative to common
  ✅ move from start to end relative to change and common
  ✅ reverse relative to change
  ✅ preceding middle
  ✅ following middle
all common items inside recursive
  ✅ prev reverse at depth 1 and preceding at depth 2
  ✅ last forward at depth 1 and following at depth 2
  ✅ preceding at depth 2 and both at depth 3 of following
  ✅ interleaved single change
  ✅ interleaved double changes
  ✅ optimization decreases iMaxF
  ✅ optimization decreases iMaxR
common substrings
  ✅ progress
  ✅ regression
  ✅ wrapping

 packages/expect/src/tests/assertionCounts.test.ts

.assertions()
  ✅ does not throw
  ✅ redeclares different assertion count
  ✅ expects no assertions
.hasAssertions()
  ✅ does not throw if there is an assertion
  ✅ throws if expected is not undefined
  ✅ hasAssertions not leaking to global state

 packages/expect/src/tests/asymmetricMatchers.test.ts

✅ Any.asymmetricMatch()
✅ Any.toAsymmetricMatcher()
✅ Any.toAsymmetricMatcher() with function name
✅ Any throws when called with empty constructor
✅ Anything matches any type
✅ Anything does not match null and undefined
✅ Anything.toAsymmetricMatcher()
✅ ArrayContaining matches
✅ ArrayContaining does not match
✅ ArrayContaining throws for non-arrays
✅ ArrayNotContaining matches
✅ ArrayNotContaining does not match
✅ ArrayNotContaining throws for non-arrays
✅ ObjectContaining matches
✅ ObjectContaining does not match
✅ ObjectContaining matches defined properties
✅ ObjectContaining matches prototype properties
✅ ObjectContaining throws for non-objects
✅ ObjectContaining does not mutate the sample
✅ ObjectNotContaining matches
✅ ObjectNotContaining does not match
✅ ObjectNotContaining inverts ObjectContaining
✅ ObjectNotContaining throws for non-objects
✅ StringContaining matches string against string
✅ StringContaining throws if expected value is not string
✅ StringContaining returns false if received value is not string
✅ StringNotContaining matches string against string
✅ StringNotContaining throws if expected value is not string
✅ StringNotContaining returns true if received value is not string
✅ StringMatching matches string against regexp
✅ StringMatching matches string against string
✅ StringMatching throws if expected value is neither string nor regexp
✅ StringMatching returns false if received value is not string
✅ StringMatching returns false even if coerced non-string received value matches pattern
✅ StringNotMatching matches string against regexp
✅ StringNotMatching matches string against string
✅ StringNotMatching throws if expected value is neither string nor regexp
✅ StringNotMatching returns true if received value is not string

 packages/expect/src/tests/extend.test.ts

✅ is available globally when matcher is unary
✅ is available globally when matcher is variadic
✅ exposes matcherUtils in context
✅ is ok if there is no message specified
✅ exposes an equality function to custom matchers
✅ defines asymmetric unary matchers
✅ defines asymmetric unary matchers that can be prefixed by not
✅ defines asymmetric variadic matchers
✅ defines asymmetric variadic matchers that can be prefixed by not
✅ prints the Symbol into the error message

 packages/expect/src/tests/isError.test.ts

isError
  ✅ should not assume objects are errors
  ✅ should detect simple error instances
  ✅ should detect errors from another context
  ✅ should detect DOMException errors from another context

 packages/expect/src/tests/matchers-toContain.property.test.ts

toContain
  ✅ should always find the value when inside the array
  ✅ should not find the value if it has been cloned into the array

 packages/expect/src/tests/matchers-toContainEqual.property.test.ts

toContainEqual
  ✅ should always find the value when inside the array
  ✅ should always find the value when cloned inside the array

 packages/expect/src/tests/matchers-toEqual.property.test.ts

toEqual
  ✅ should be reflexive
  ✅ should be symmetric

 packages/expect/src/tests/matchers-toStrictEqual.property.test.ts

toStrictEqual
  ✅ should be reflexive
  ✅ should be symmetric
toStrictEqual on node >=9
  ✅ should be equivalent to Node deepStrictEqual

 packages/expect/src/tests/matchers.test.js

✅ should throw if passed two arguments
.rejects
  ✅ should reject
  ✅ should reject with toThrow
  ✅ should reject async function to toThrow
  ✅ fails non-promise value "a" synchronously
  ✅ fails non-promise value "a"
  ✅ fails non-promise value [1] synchronously
  ✅ fails non-promise value [1]
  ✅ fails non-promise value [Function anonymous] synchronously
  ✅ fails non-promise value [Function anonymous]
  ✅ fails non-promise value {"a": 1} synchronously
  ✅ fails non-promise value {"a": 1}
  ✅ fails non-promise value 4 synchronously
  ✅ fails non-promise value 4
  ✅ fails non-promise value null synchronously
  ✅ fails non-promise value null
  ✅ fails non-promise value true synchronously
  ✅ fails non-promise value true
  ✅ fails non-promise value undefined synchronously
  ✅ fails non-promise value undefined
  ✅ fails for promise that resolves
.resolves
  ✅ should resolve
  ✅ fails non-promise value "a" synchronously
  ✅ fails non-promise value "a"
  ✅ fails non-promise value [1] synchronously
  ✅ fails non-promise value [1]
  ✅ fails non-promise value [Function anonymous] synchronously
  ✅ fails non-promise value [Function anonymous]
  ✅ fails non-promise value {"a": 1} synchronously
  ✅ fails non-promise value {"a": 1}
  ✅ fails non-promise value 4 synchronously
  ✅ fails non-promise value 4
  ✅ fails non-promise value null synchronously
  ✅ fails non-promise value null
  ✅ fails non-promise value true synchronously
  ✅ fails non-promise value true
  ✅ fails non-promise value undefined synchronously
  ✅ fails non-promise value undefined
  ✅ fails for promise that rejects
.toBe()
  ✅ does not throw
  ✅ fails for: 1 and 2
  ✅ fails for: true and false
  ✅ fails for: [Function anonymous] and [Function anonymous]
  ✅ fails for: {} and {}
  ✅ fails for: {"a": 1} and {"a": 1}
  ✅ fails for: {"a": 1} and {"a": 5}
  ✅ fails for: {"a": [Function a], "b": 2} and {"a": Any<Function>, "b": 2}
  ✅ fails for: {"a": undefined, "b": 2} and {"b": 2}
  ✅ fails for: 2020-02-20T00:00:00.000Z and 2020-02-20T00:00:00.000Z
  ✅ fails for: 2020-02-21T00:00:00.000Z and 2020-02-20T00:00:00.000Z
  ✅ fails for: /received/ and /expected/
  ✅ fails for: Symbol(received) and Symbol(expected)
  ✅ fails for: [Error: received] and [Error: expected]
  ✅ fails for: "abc" and "cde"
  ✅ fails for: "painless JavaScript testing" and "delightful JavaScript testing"
  ✅ fails for: "" and "compare one-line string to empty string"
  ✅ fails for: "with 
trailing space" and "without trailing space"
  ✅ fails for: "four
4
line
string" and "3
line
string"
  ✅ fails for: [] and []
  ✅ fails for: null and undefined
  ✅ fails for: -0 and 0
  ✅ fails for: 1n and 2n
  ✅ fails for: {"a": 1n} and {"a": 1n}
  ✅ fails for 'false' with '.not'
  ✅ fails for '1' with '.not'
  ✅ fails for '"a"' with '.not'
  ✅ fails for 'undefined' with '.not'
  ✅ fails for 'null' with '.not'
  ✅ fails for '{}' with '.not'
  ✅ fails for '[]' with '.not'
  ✅ fails for '1n' with '.not'
  ✅ fails for '1n' with '.not'
  ✅ does not crash on circular references
  ✅ assertion error matcherResult property contains matcher name, expected and actual values
.toStrictEqual()
  ✅ does not ignore keys with undefined values
  ✅ does not ignore keys with undefined values inside an array
  ✅ does not ignore keys with undefined values deep inside an object
  ✅ passes when comparing same type
  ✅ matches the expected snapshot when it fails
  ✅ displays substring diff
  ✅ displays substring diff for multiple lines
  ✅ does not pass for different types
  ✅ does not simply compare constructor names
  ✅ passes for matching sparse arrays
  ✅ does not pass when sparseness of arrays do not match
  ✅ does not pass when equally sparse arrays have different values
.toEqual()
  ✅ {pass: false} expect(true).toEqual(false)
  ✅ {pass: false} expect(1).toEqual(2)
  ✅ {pass: false} expect(0).toEqual(-0)
  ✅ {pass: false} expect(0).toEqual(5e-324)
  ✅ {pass: false} expect(5e-324).toEqual(0)
  ✅ {pass: false} expect(0).toEqual({})
  ✅ {pass: false} expect({}).toEqual(0)
  ✅ {pass: false} expect({}).toEqual({})
  ✅ {pass: false} expect("abc").toEqual({"0": "a", "1": "b", "2": "c"})
  ✅ {pass: false} expect({"0": "a", "1": "b", "2": "c"}).toEqual("abc")
  ✅ {pass: false} expect(/abc/gsy).toEqual(/abc/g)
  ✅ {pass: false} expect({"a": 1}).toEqual({"a": 2})
  ✅ {pass: false} expect({"a": 5}).toEqual({"b": 6})
  ✅ {pass: false} expect({"foo": {"bar": 1}}).toEqual({"foo": {}})
  ✅ {pass: false} expect({"getterAndSetter": {}}).toEqual({"getterAndSetter": {"foo": "bar"}})
  ✅ {pass: false} expect({"frozenGetterAndSetter": {}}).toEqual({"frozenGetterAndSetter": {"foo": "bar"}})
  ✅ {pass: false} expect({"getter": {}}).toEqual({"getter": {"foo": "bar"}})
  ✅ {pass: false} expect({"frozenGetter": {}}).toEqual({"frozenGetter": {"foo": "bar"}})
  ✅ {pass: false} expect({"setter": undefined}).toEqual({"setter": {"foo": "bar"}})
  ✅ {pass: false} expect({"frozenSetter": undefined}).toEqual({"frozenSetter": {"foo": "bar"}})
  ✅ {pass: false} expect("banana").toEqual("apple")
  ✅ {pass: false} expect("1 234,57 $").toEqual("1 234,57 $")
  ✅ {pass: false} expect("type TypeName<T> = T extends Function ? \"function\" : \"object\";").toEqual("type TypeName<T> = T extends Function
? \"function\"
: \"object\";")
  ✅ {pass: false} expect(null).toEqual(undefined)
  ✅ {pass: false} expect([1]).toEqual([2])
  ✅ {pass: false} expect([1, 2]).toEqual([2, 1])
  ✅ {pass: false} expect(Immutable.List [1]).toEqual(Immutable.List [2])
  ✅ {pass: false} expect(Immutable.List [1, 2]).toEqual(Immutable.List [2, 1])
  ✅ {pass: false} expect(Map {}).toEqual(Set {})
  ✅ {pass: false} expect(Set {1, 2}).toEqual(Set {})
  ✅ {pass: false} expect(Set {1, 2}).toEqual(Set {1, 2, 3})
  ✅ {pass: false} expect(Set {[1], [2]}).toEqual(Set {[1], [2], [3]})
  ✅ {pass: false} expect(Set {[1], [2]}).toEqual(Set {[1], [2], [2]})
  ✅ {pass: false} expect(Set {Set {1}, Set {2}}).toEqual(Set {Set {1}, Set {3}})
  ✅ {pass: false} expect(Immutable.Set [1, 2]).toEqual(Immutable.Set [])
  ✅ {pass: false} expect(Immutable.Set [1, 2]).toEqual(Immutable.Set [1, 2, 3])
  ✅ {pass: false} expect(Immutable.OrderedSet [1, 2]).toEqual(Immutable.OrderedSet [2, 1])
  ✅ {pass: false} expect(Map {1 => "one", 2 => "two"}).toEqual(Map {1 => "one"})
  ✅ {pass: false} expect(Map {"a" => 0}).toEqual(Map {"b" => 0})
  ✅ {pass: false} expect(Map {"v" => 1}).toEqual(Map {"v" => 2})
  ✅ {pass: false} expect(Map {["v"] => 1}).toEqual(Map {["v"] => 2})
  ✅ {pass: false} expect(Map {[1] => Map {[1] => "one"}}).toEqual(Map {[1] => Map {[1] => "two"}})
  ✅ {pass: false} expect(Immutable.Map {"a": 0}).toEqual(Immutable.Map {"b": 0})
  ✅ {pass: false} expect(Immutable.Map {"v": 1}).toEqual(Immutable.Map {"v": 2})
  ✅ {pass: false} expect(Immutable.OrderedMap {1: "one", 2: "two"}).toEqual(Immutable.OrderedMap {2: "two", 1: "one"})
  ✅ {pass: false} expect(Immutable.Map {"1": Immutable.Map {"2": {"a": 99}}}).toEqual(Immutable.Map {"1": Immutable.Map {"2": {"a": 11}}})
  ✅ {pass: false} expect([97, 98, 99]).toEqual([97, 98, 100])
  ✅ {pass: false} expect({"a": 1, "b": 2}).toEqual(ObjectContaining {"a": 2})
  ✅ {pass: false} expect(false).toEqual(ObjectContaining {"a": 2})
  ✅ {pass: false} expect([1, 3]).toEqual(ArrayContaining [1, 2])
  ✅ {pass: false} expect(1).toEqual(ArrayContaining [1, 2])
  ✅ {pass: false} expect("abd").toEqual(StringContaining "bc")
  ✅ {pass: false} expect("abd").toEqual(StringMatching /bc/i)
  ✅ {pass: false} expect(undefined).toEqual(Anything)
  ✅ {pass: false} expect(undefined).toEqual(Any<Function>)
  ✅ {pass: false} expect("Eve").toEqual({"asymmetricMatch": [Function asymmetricMatch]})
  ✅ {pass: false} expect({"target": {"nodeType": 1, "value": "a"}}).toEqual({"target": {"nodeType": 1, "value": "b"}})
  ✅ {pass: false} expect({"nodeName": "div", "nodeType": 1}).toEqual({"nodeName": "p", "nodeType": 1})
  ✅ {pass: false} expect({Symbol(foo): 1, Symbol(bar): 2}).toEqual({Symbol(foo): Any<Number>, Symbol(bar): 1})
  ✅ {pass: false} expect(1n).toEqual(2n)
  ✅ {pass: false} expect(1n).toEqual(1)
  ✅ {pass: true} expect(true).not.toEqual(true)
  ✅ {pass: true} expect(1).not.toEqual(1)
  ✅ {pass: true} expect(NaN).not.toEqual(NaN)
  ✅ {pass: true} expect(0).not.toEqual(0)
  ✅ {pass: true} expect(0).not.toEqual(0)
  ✅ {pass: true} expect({}).not.toEqual({})
  ✅ {pass: true} expect("abc").not.toEqual("abc")
  ✅ {pass: true} expect("abc").not.toEqual("abc")
  ✅ {pass: true} expect("abc").not.toEqual("abc")
  ✅ {pass: true} expect([1]).not.toEqual([1])
  ✅ {pass: true} expect([1, 2]).not.toEqual([1, 2])
  ✅ {pass: true} expect(Immutable.List [1]).not.toEqual(Immutable.List [1])
  ✅ {pass: true} expect(Immutable.List [1, 2]).not.toEqual(Immutable.List [1, 2])
  ✅ {pass: true} expect({}).not.toEqual({})
  ✅ {pass: true} expect({"a": 99}).not.toEqual({"a": 99})
  ✅ {pass: true} expect(Set {}).not.toEqual(Set {})
  ✅ {pass: true} expect(Set {1, 2}).not.toEqual(Set {1, 2})
  ✅ {pass: true} expect(Set {1, 2}).not.toEqual(Set {2, 1})
  ✅ {pass: true} expect(Set {[1], [2]}).not.toEqual(Set {[2], [1]})
  ✅ {pass: true} expect(Set {Set {[1]}, Set {[2]}}).not.toEqual(Set {Set {[2]}, Set {[1]}})
  ✅ {pass: true} expect(Set {[1], [2], [3], [3]}).not.toEqual(Set {[3], [3], [2], [1]})
  ✅ {pass: true} expect(Set {{"a": 1}, {"b": 2}}).not.toEqual(Set {{"b": 2}, {"a": 1}})
  ✅ {pass: true} expect(Immutable.Set []).not.toEqual(Immutable.Set [])
  ✅ {pass: true} expect(Immutable.Set [1, 2]).not.toEqual(Immutable.Set [1, 2])
  ✅ {pass: true} expect(Immutable.Set [1, 2]).not.toEqual(Immutable.Set [2, 1])
  ✅ {pass: true} expect(Immutable.OrderedSet []).not.toEqual(Immutable.OrderedSet [])
  ✅ {pass: true} expect(Immutable.OrderedSet [1, 2]).not.toEqual(Immutable.OrderedSet [1, 2])
  ✅ {pass: true} expect(Map {}).not.toEqual(Map {})
  ✅ {pass: true} expect(Map {1 => "one", 2 => "two"}).not.toEqual(Map {1 => "one", 2 => "two"})
  ✅ {pass: true} expect(Map {1 => "one", 2 => "two"}).not.toEqual(Map {2 => "two", 1 => "one"})
  ✅ {pass: true} expect(Map {[1] => "one", [2] => "two", [3] => "three", [3] => "four"}).not.toEqual(Map {[3] => "three", [3] => "four", [2] => "two", [1] => "one"})
  ✅ {pass: true} expect(Map {[1] => Map {[1] => "one"}, [2] => Map {[2] => "two"}}).not.toEqual(Map {[2] => Map {[2] => "two"}, [1] => Map {[1] => "one"}})
  ✅ {pass: true} expect(Map {[1] => "one", [2] => "two"}).not.toEqual(Map {[2] => "two", [1] => "one"})
  ✅ {pass: true} expect(Map {{"a": 1} => "one", {"b": 2} => "two"}).not.toEqual(Map {{"b": 2} => "two", {"a": 1} => "one"})
  ✅ {pass: true} expect(Map {1 => ["one"], 2 => ["two"]}).not.toEqual(Map {2 => ["two"], 1 => ["one"]})
  ✅ {pass: true} expect(Immutable.Map {}).not.toEqual(Immutable.Map {})
  ✅ {pass: true} expect(Immutable.Map {1: "one", 2: "two"}).not.toEqual(Immutable.Map {1: "one", 2: "two"})
  ✅ {pass: true} expect(Immutable.Map {1: "one", 2: "two"}).not.toEqual(Immutable.Map {2: "two", 1: "one"})
  ✅ {pass: true} expect(Immutable.OrderedMap {1: "one", 2: "two"}).not.toEqual(Immutable.OrderedMap {1: "one", 2: "two"})
  ✅ {pass: true} expect(Immutable.Map {"1": Immutable.Map {"2": {"a": 99}}}).not.toEqual(Immutable.Map {"1": Immutable.Map {"2": {"a": 99}}})
  ✅ {pass: true} expect([97, 98, 99]).not.toEqual([97, 98, 99])
  ✅ {pass: true} expect({"a": 1, "b": 2}).not.toEqual(ObjectContaining {"a": 1})
  ✅ {pass: true} expect([1, 2, 3]).not.toEqual(ArrayContaining [2, 3])
  ✅ {pass: true} expect("abcd").not.toEqual(StringContaining "bc")
  ✅ {pass: true} expect("abcd").not.toEqual(StringMatching /bc/)
  ✅ {pass: true} expect(true).not.toEqual(Anything)
  ✅ {pass: true} expect([Function anonymous]).not.toEqual(Any<Function>)
  ✅ {pass: true} expect({"a": 1, "b": [Function b], "c": true}).not.toEqual({"a": 1, "b": Any<Function>, "c": Anything})
  ✅ {pass: true} expect("Alice").not.toEqual({"asymmetricMatch": [Function asymmetricMatch]})
  ✅ {pass: true} expect({"nodeName": "div", "nodeType": 1}).not.toEqual({"nodeName": "div", "nodeType": 1})
  ✅ {pass: true} expect({Symbol(foo): 1, Symbol(bar): 2}).not.toEqual({Symbol(foo): Any<Number>, Symbol(bar): 2})
  ✅ {pass: true} expect(1n).not.toEqual(1n)
  ✅ {pass: true} expect(0n).not.toEqual(0n)
  ✅ {pass: true} expect([1n]).not.toEqual([1n])
  ✅ {pass: true} expect([1n, 2]).not.toEqual([1n, 2])
  ✅ {pass: true} expect(Immutable.List [1n]).not.toEqual(Immutable.List [1n])
  ✅ {pass: true} expect({"a": 99n}).not.toEqual({"a": 99n})
  ✅ {pass: true} expect(Set {1n, 2n}).not.toEqual(Set {1n, 2n})
  ✅ assertion error matcherResult property contains matcher name, expected and actual values
  ✅ symbol based keys in arrays are processed correctly
  ✅ non-enumerable members should be skipped during equal
  ✅ non-enumerable symbolic members should be skipped during equal
.toEqual() cyclic object equality
  ✅ properties with the same circularity are equal
  ✅ properties with different circularity are not equal
  ✅ are not equal if circularity is not on the same property
.toBeInstanceOf()
  ✅ passing Map {} and [Function Map]
  ✅ passing [] and [Function Array]
  ✅ passing {} and [Function A]
  ✅ passing {} and [Function B]
  ✅ passing {} and [Function B]
  ✅ passing {} and [Function anonymous]
  ✅ passing {} and [Function B]
  ✅ passing {} and [Function name() {}]
  ✅ failing "a" and [Function String]
  ✅ failing 1 and [Function Number]
  ✅ failing true and [Function Boolean]
  ✅ failing {} and [Function B]
  ✅ failing {} and [Function A]
  ✅ failing undefined and [Function String]
  ✅ failing null and [Function String]
  ✅ failing /\w+/ and [Function anonymous]
  ✅ failing {} and [Function RegExp]
  ✅ throws if constructor is not a function
.toBeTruthy(), .toBeFalsy()
  ✅ does not accept arguments
  ✅ '{}' is truthy
  ✅ '[]' is truthy
  ✅ 'true' is truthy
  ✅ '1' is truthy
  ✅ '"a"' is truthy
  ✅ '0.5' is truthy
  ✅ 'Map {}' is truthy
  ✅ '[Function anonymous]' is truthy
  ✅ 'Infinity' is truthy
  ✅ '1n' is truthy
  ✅ 'false' is falsy
  ✅ 'null' is falsy
  ✅ 'NaN' is falsy
  ✅ '0' is falsy
  ✅ '""' is falsy
  ✅ 'undefined' is falsy
  ✅ '0n' is falsy
.toBeNaN()
  ✅ {pass: true} expect(NaN).toBeNaN()
  ✅ throws
.toBeNull()
  ✅ fails for '{}'
  ✅ fails for '[]'
  ✅ fails for 'true'
  ✅ fails for '1'
  ✅ fails for '"a"'
  ✅ fails for '0.5'
  ✅ fails for 'Map {}'
  ✅ fails for '[Function anonymous]'
  ✅ fails for 'Infinity'
  ✅ fails for null with .not
  ✅ pass for null
.toBeDefined(), .toBeUndefined()
  ✅ '{}' is defined
  ✅ '[]' is defined
  ✅ 'true' is defined
  ✅ '1' is defined
  ✅ '"a"' is defined
  ✅ '0.5' is defined
  ✅ 'Map {}' is defined
  ✅ '[Function anonymous]' is defined
  ✅ 'Infinity' is defined
  ✅ '1n' is defined
  ✅ undefined is undefined
.toBeGreaterThan(), .toBeLessThan(), .toBeGreaterThanOrEqual(), .toBeLessThanOrEqual()
  ✅ {pass: true} expect(1).toBeLessThan(2)
  ✅ {pass: false} expect(2).toBeLessThan(1)
  ✅ {pass: true} expect(2).toBeGreaterThan(1)
  ✅ {pass: false} expect(1).toBeGreaterThan(2)
  ✅ {pass: true} expect(1).toBeLessThanOrEqual(2)
  ✅ {pass: false} expect(2).toBeLessThanOrEqual(1)
  ✅ {pass: true} expect(2).toBeGreaterThanOrEqual(1)
  ✅ {pass: false} expect(1).toBeGreaterThanOrEqual(2)
  ✅ throws: [1, 2]
  ✅ {pass: true} expect(-Infinity).toBeLessThan(Infinity)
  ✅ {pass: false} expect(Infinity).toBeLessThan(-Infinity)
  ✅ {pass: true} expect(Infinity).toBeGreaterThan(-Infinity)
  ✅ {pass: false} expect(-Infinity).toBeGreaterThan(Infinity)
  ✅ {pass: true} expect(-Infinity).toBeLessThanOrEqual(Infinity)
  ✅ {pass: false} expect(Infinity).toBeLessThanOrEqual(-Infinity)
  ✅ {pass: true} expect(Infinity).toBeGreaterThanOrEqual(-Infinity)
  ✅ {pass: false} expect(-Infinity).toBeGreaterThanOrEqual(Infinity)
  ✅ throws: [-Infinity, Infinity]
  ✅ {pass: true} expect(5e-324).toBeLessThan(1.7976931348623157e+308)
  ✅ {pass: false} expect(1.7976931348623157e+308).toBeLessThan(5e-324)
  ✅ {pass: true} expect(1.7976931348623157e+308).toBeGreaterThan(5e-324)
  ✅ {pass: false} expect(5e-324).toBeGreaterThan(1.7976931348623157e+308)
  ✅ {pass: true} expect(5e-324).toBeLessThanOrEqual(1.7976931348623157e+308)
  ✅ {pass: false} expect(1.7976931348623157e+308).toBeLessThanOrEqual(5e-324)
  ✅ {pass: true} expect(1.7976931348623157e+308).toBeGreaterThanOrEqual(5e-324)
  ✅ {pass: false} expect(5e-324).toBeGreaterThanOrEqual(1.7976931348623157e+308)
  ✅ throws: [5e-324, 1.7976931348623157e+308]
  ✅ {pass: true} expect(17).toBeLessThan(34)
  ✅ {pass: false} expect(34).toBeLessThan(17)
  ✅ {pass: true} expect(34).toBeGreaterThan(17)
  ✅ {pass: false} expect(17).toBeGreaterThan(34)
  ✅ {pass: true} expect(17).toBeLessThanOrEqual(34)
  ✅ {pass: false} expect(34).toBeLessThanOrEqual(17)
  ✅ {pass: true} expect(34).toBeGreaterThanOrEqual(17)
  ✅ {pass: false} expect(17).toBeGreaterThanOrEqual(34)
  ✅ throws: [17, 34]
  ✅ {pass: true} expect(3).toBeLessThan(7)
  ✅ {pass: false} expect(7).toBeLessThan(3)
  ✅ {pass: true} expect(7).toBeGreaterThan(3)
  ✅ {pass: false} expect(3).toBeGreaterThan(7)
  ✅ {pass: true} expect(3).toBeLessThanOrEqual(7)
  ✅ {pass: false} expect(7).toBeLessThanOrEqual(3)
  ✅ {pass: true} expect(7).toBeGreaterThanOrEqual(3)
  ✅ {pass: false} expect(3).toBeGreaterThanOrEqual(7)
  ✅ throws: [3, 7]
  ✅ {pass: true} expect(9).toBeLessThan(18)
  ✅ {pass: false} expect(18).toBeLessThan(9)
  ✅ {pass: true} expect(18).toBeGreaterThan(9)
  ✅ {pass: false} expect(9).toBeGreaterThan(18)
  ✅ {pass: true} expect(9).toBeLessThanOrEqual(18)
  ✅ {pass: false} expect(18).toBeLessThanOrEqual(9)
  ✅ {pass: true} expect(18).toBeGreaterThanOrEqual(9)
  ✅ {pass: false} expect(9).toBeGreaterThanOrEqual(18)
  ✅ throws: [9, 18]
  ✅ {pass: true} expect(0.1).toBeLessThan(0.2)
  ✅ {pass: false} expect(0.2).toBeLessThan(0.1)
  ✅ {pass: true} expect(0.2).toBeGreaterThan(0.1)
  ✅ {pass: false} expect(0.1).toBeGreaterThan(0.2)
  ✅ {pass: true} expect(0.1).toBeLessThanOrEqual(0.2)
  ✅ {pass: false} expect(0.2).toBeLessThanOrEqual(0.1)
  ✅ {pass: true} expect(0.2).toBeGreaterThanOrEqual(0.1)
  ✅ {pass: false} expect(0.1).toBeGreaterThanOrEqual(0.2)
  ✅ throws: [0.1, 0.2]
  ✅ can compare BigInt to Numbers
  ✅ {pass: true} expect(1n).toBeLessThan(2n)
  ✅ {pass: false} expect(2n).toBeLessThan(1n)
  ✅ {pass: true} expect(2n).toBeGreaterThan(1n)
  ✅ {pass: false} expect(1n).toBeGreaterThan(2n)
  ✅ {pass: true} expect(1n).toBeLessThanOrEqual(2n)
  ✅ {pass: false} expect(2n).toBeLessThanOrEqual(1n)
  ✅ {pass: true} expect(2n).toBeGreaterThanOrEqual(1n)
  ✅ {pass: false} expect(1n).toBeGreaterThanOrEqual(2n)
  ✅ throws: [1n, 2n]
  ✅ {pass: true} expect(17n).toBeLessThan(34n)
  ✅ {pass: false} expect(34n).toBeLessThan(17n)
  ✅ {pass: true} expect(34n).toBeGreaterThan(17n)
  ✅ {pass: false} expect(17n).toBeGreaterThan(34n)
  ✅ {pass: true} expect(17n).toBeLessThanOrEqual(34n)
  ✅ {pass: false} expect(34n).toBeLessThanOrEqual(17n)
  ✅ {pass: true} expect(34n).toBeGreaterThanOrEqual(17n)
  ✅ {pass: false} expect(17n).toBeGreaterThanOrEqual(34n)
  ✅ throws: [17n, 34n]
  ✅ {pass: true} expect(-1).toBeLessThan(2n)
  ✅ {pass: false} expect(2n).toBeLessThan(-1)
  ✅ {pass: true} expect(2n).toBeGreaterThan(-1)
  ✅ {pass: false} expect(-1).toBeGreaterThan(2n)
  ✅ {pass: true} expect(-1).toBeLessThanOrEqual(2n)
  ✅ {pass: false} expect(2n).toBeLessThanOrEqual(-1)
  ✅ {pass: true} expect(2n).toBeGreaterThanOrEqual(-1)
  ✅ {pass: false} expect(-1).toBeGreaterThanOrEqual(2n)
  ✅ throws: [-1, 2n]
  ✅ equal numbers: [1, 1]
  ✅ equal numbers: [5e-324, 5e-324]
  ✅ equal numbers: [1.7976931348623157e+308, 1.7976931348623157e+308]
  ✅ equal numbers: [Infinity, Infinity]
  ✅ equal numbers: [-Infinity, -Infinity]
  ✅ equal numbers: [1, 1]
  ✅ equal numbers: [9007199254740991, 9007199254740991]
.toContain(), .toContainEqual()
  ✅ iterable
  ✅ '[1, 2, 3, 4]' contains '1'
  ✅ '["a", "b", "c", "d"]' contains '"a"'
  ✅ '[undefined, null]' contains 'null'
  ✅ '[undefined, null]' contains 'undefined'
  ✅ '[Symbol(a)]' contains 'Symbol(a)'
  ✅ '"abcdef"' contains '"abc"'
  ✅ '"11112111"' contains '"2"'
  ✅ 'Set {"abc", "def"}' contains '"abc"'
  ✅ '[0, 1]' contains '1'
  ✅ '[1n, 2n, 3n, 4n]' contains '1n'
  ✅ '[1, 2, 3, 3n, 4]' contains '3n'
  ✅ '[1, 2, 3]' does not contain '4'
  ✅ '[null, undefined]' does not contain '1'
  ✅ '[{}, []]' does not contain '[]'
  ✅ '[{}, []]' does not contain '{}'
  ✅ '[1n, 2n, 3n]' does not contain '3'
  ✅ error cases
  ✅ '[1, 2, 3, 4]' contains a value equal to '1'
  ✅ '["a", "b", "c", "d"]' contains a value equal to '"a"'
  ✅ '[undefined, null]' contains a value equal to 'null'
  ✅ '[undefined, null]' contains a value equal to 'undefined'
  ✅ '[Symbol(a)]' contains a value equal to 'Symbol(a)'
  ✅ '[{"a": "b"}, {"a": "c"}]' contains a value equal to '{"a": "b"}'
  ✅ 'Set {1, 2, 3, 4}' contains a value equal to '1'
  ✅ '[0, 1]' contains a value equal to '1'
  ✅ '[{"a": "b"}, {"a": "c"}]' does not contain a value equal to'{"a": "d"}'
  ✅ error cases for toContainEqual
.toBeCloseTo
  ✅ {pass: true} expect(0).toBeCloseTo(0)
  ✅ {pass: true} expect(0).toBeCloseTo(0.001)
  ✅ {pass: true} expect(1.23).toBeCloseTo(1.229)
  ✅ {pass: true} expect(1.23).toBeCloseTo(1.226)
  ✅ {pass: true} expect(1.23).toBeCloseTo(1.225)
  ✅ {pass: true} expect(1.23).toBeCloseTo(1.234)
  ✅ {pass: true} expect(Infinity).toBeCloseTo(Infinity)
  ✅ {pass: true} expect(-Infinity).toBeCloseTo(-Infinity)
  ✅ {pass: false} expect(0).toBeCloseTo(0.01)
  ✅ {pass: false} expect(1).toBeCloseTo(1.23)
  ✅ {pass: false} expect(1.23).toBeCloseTo(1.2249999)
  ✅ {pass: false} expect(Infinity).toBeCloseTo(-Infinity)
  ✅ {pass: false} expect(Infinity).toBeCloseTo(1.23)
  ✅ {pass: false} expect(-Infinity).toBeCloseTo(-1.23)
  ✅ {pass: false} expect(3.141592e-7).toBeCloseTo(3e-7, 8)
  ✅ {pass: false} expect(56789).toBeCloseTo(51234, -4)
  ✅ {pass: true} expect(0).toBeCloseTo(0.1, 0)
  ✅ {pass: true} expect(0).toBeCloseTo(0.0001, 3)
  ✅ {pass: true} expect(0).toBeCloseTo(0.000004, 5)
  ✅ {pass: true} expect(2.0000002).toBeCloseTo(2, 5)
.toBeCloseTo throws: Matcher error
  ✅ promise empty isNot false received
  ✅ promise empty isNot true expected
  ✅ promise rejects isNot false expected
  ✅ promise rejects isNot true received
  ✅ promise resolves isNot false received
  ✅ promise resolves isNot true expected
.toMatch()
  ✅ {pass: true} expect(foo).toMatch(foo)
  ✅ {pass: true} expect(Foo bar).toMatch(/^foo/i)
  ✅ throws: [bar, foo]
  ✅ throws: [bar, /foo/]
  ✅ throws if non String actual value passed: [1, "foo"]
  ✅ throws if non String actual value passed: [{}, "foo"]
  ✅ throws if non String actual value passed: [[], "foo"]
  ✅ throws if non String actual value passed: [true, "foo"]
  ✅ throws if non String actual value passed: [/foo/i, "foo"]
  ✅ throws if non String actual value passed: [[Function anonymous], "foo"]
  ✅ throws if non String actual value passed: [undefined, "foo"]
  ✅ throws if non String/RegExp expected value passed: ["foo", 1]
  ✅ throws if non String/RegExp expected value passed: ["foo", {}]
  ✅ throws if non String/RegExp expected value passed: ["foo", []]
  ✅ throws if non String/RegExp expected value passed: ["foo", true]
  ✅ throws if non String/RegExp expected value passed: ["foo", [Function anonymous]]
  ✅ throws if non String/RegExp expected value passed: ["foo", undefined]
  ✅ escapes strings properly
  ✅ does not maintain RegExp state between calls
.toHaveLength
  ✅ {pass: true} expect([1, 2]).toHaveLength(2)
  ✅ {pass: true} expect([]).toHaveLength(0)
  ✅ {pass: true} expect(["a", "b"]).toHaveLength(2)
  ✅ {pass: true} expect("abc").toHaveLength(3)
  ✅ {pass: true} expect("").toHaveLength(0)
  ✅ {pass: true} expect([Function anonymous]).toHaveLength(0)
  ✅ {pass: false} expect([1, 2]).toHaveLength(3)
  ✅ {pass: false} expect([]).toHaveLength(1)
  ✅ {pass: false} expect(["a", "b"]).toHaveLength(99)
  ✅ {pass: false} expect("abc").toHaveLength(66)
  ✅ {pass: false} expect("").toHaveLength(1)
  ✅ error cases
.toHaveLength matcher error expected length
  ✅ not number
  ✅ number Infinity
  ✅ number NaN
  ✅ number float
  ✅ number negative integer
.toHaveProperty()
  ✅ {pass: true} expect({"a": {"b": {"c": {"d": 1}}}}).toHaveProperty('a.b.c.d', 1)
  ✅ {pass: true} expect({"a": {"b": {"c": {"d": 1}}}}).toHaveProperty('a,b,c,d', 1)
  ✅ {pass: true} expect({"a.b.c.d": 1}).toHaveProperty('a.b.c.d', 1)
  ✅ {pass: true} expect({"a": {"b": [1, 2, 3]}}).toHaveProperty('a,b,1', 2)
  ✅ {pass: true} expect({"a": {"b": [1, 2, 3]}}).toHaveProperty('a,b,1', Any<Number>)
  ✅ {pass: true} expect({"a": 0}).toHaveProperty('a', 0)
  ✅ {pass: true} expect({"a": {"b": undefined}}).toHaveProperty('a.b', undefined)
  ✅ {pass: true} expect({"a": {}}).toHaveProperty('a.b', undefined)
  ✅ {pass: true} expect({"a": {"b": {"c": 5}}}).toHaveProperty('a.b', {"c": 5})
  ✅ {pass: true} expect({"property": 1}).toHaveProperty('property', 1)
  ✅ {pass: true} expect({}).toHaveProperty('a', undefined)
  ✅ {pass: true} expect({}).toHaveProperty('b', "b")
  ✅ {pass: true} expect({}).toHaveProperty('setter', undefined)
  ✅ {pass: true} expect({"val": true}).toHaveProperty('a', undefined)
  ✅ {pass: true} expect({"val": true}).toHaveProperty('c', "c")
  ✅ {pass: true} expect({"val": true}).toHaveProperty('val', true)
  ✅ {pass: true} expect({"nodeName": "DIV"}).toHaveProperty('nodeType', 1)
  ✅ {pass: true} expect("").toHaveProperty('length', 0)
  ✅ {pass: true} expect([Function memoized]).toHaveProperty('memo', [])
  ✅ {pass: false} expect({"a": {"b": {"c": {"d": 1}}}}).toHaveProperty('a.b.ttt.d', 1)
  ✅ {pass: false} expect({"a": {"b": {"c": {"d": 1}}}}).toHaveProperty('a.b.c.d', 2)
  ✅ {pass: false} expect({"a.b.c.d": 1}).toHaveProperty('a.b.c.d', 2)
  ✅ {pass: false} expect({"a.b.c.d": 1}).toHaveProperty('a.b.c.d', 2)
  ✅ {pass: false} expect({"children": ["\"That cartoon\""], "props": null, "type": "p"}).toHaveProperty('children,0', "\"That cat cartoon\"")
  ✅ {pass: false} expect({"children": ["Roses are red.
Violets are blue.
Testing with Jest is good for you."], "props": null, "type": "pre"}).toHaveProperty('children,0', "Roses are red, violets are blue.
Testing with Jest
Is good for you.")
  ✅ {pass: false} expect({"a": {"b": {"c": {"d": 1}}}}).toHaveProperty('a,b,c,d', 2)
  ✅ {pass: false} expect({"a": {"b": {"c": {}}}}).toHaveProperty('a.b.c.d', 1)
  ✅ {pass: false} expect({"a": 1}).toHaveProperty('a.b.c.d', 5)
  ✅ {pass: false} expect({}).toHaveProperty('a', "test")
  ✅ {pass: false} expect({"a": {"b": 3}}).toHaveProperty('a.b', undefined)
  ✅ {pass: false} expect(1).toHaveProperty('a.b.c', "test")
  ✅ {pass: false} expect("abc").toHaveProperty('a.b.c', {"a": 5})
  ✅ {pass: false} expect({"a": {"b": {"c": 5}}}).toHaveProperty('a.b', {"c": 4})
  ✅ {pass: false} expect({}).toHaveProperty('a', "a")
  ✅ {pass: false} expect({}).toHaveProperty('b', undefined)
  ✅ {pass: true} expect({"a": {"b": {"c": {"d": 1}}}}).toHaveProperty('a.b.c.d')
  ✅ {pass: true} expect({"a": {"b": {"c": {"d": 1}}}}).toHaveProperty('a,b,c,d')
  ✅ {pass: true} expect({"a.b.c.d": 1}).toHaveProperty('a.b.c.d')
  ✅ {pass: true} expect({"a": {"b": [1, 2, 3]}}).toHaveProperty('a,b,1')
  ✅ {pass: true} expect({"a": 0}).toHaveProperty('a')
  ✅ {pass: true} expect({"a": {"b": undefined}}).toHaveProperty('a.b')
  ✅ {pass: false} expect({"a": {"b": {"c": {}}}}).toHaveProperty('a.b.c.d')
  ✅ {pass: false} expect({"a": 1}).toHaveProperty('a.b.c.d')
  ✅ {pass: false} expect({}).toHaveProperty('a')
  ✅ {pass: false} expect(1).toHaveProperty('a.b.c')
  ✅ {pass: false} expect("abc").toHaveProperty('a.b.c')
  ✅ {pass: false} expect(false).toHaveProperty('key')
  ✅ {pass: false} expect(0).toHaveProperty('key')
  ✅ {pass: false} expect("").toHaveProperty('key')
  ✅ {pass: false} expect(Symbol()).toHaveProperty('key')
  ✅ {pass: false} expect({"key": 1}).toHaveProperty('not')
  ✅ {error} expect(null).toHaveProperty('a.b')
  ✅ {error} expect(undefined).toHaveProperty('a')
  ✅ {error} expect({"a": {"b": {}}}).toHaveProperty('undefined')
  ✅ {error} expect({"a": {"b": {}}}).toHaveProperty('null')
  ✅ {error} expect({"a": {"b": {}}}).toHaveProperty('1')
  ✅ {error} expect({}).toHaveProperty('')
toMatchObject() circular references simple circular references
  ✅ {pass: true} expect({"a": "hello", "ref": [Circular]}).toMatchObject({})
  ✅ {pass: true} expect({"a": "hello", "ref": [Circular]}).toMatchObject({"a": "hello", "ref": [Circular]})
  ✅ {pass: false} expect({}).toMatchObject({"a": "hello", "ref": [Circular]})
  ✅ {pass: false} expect({"a": "hello", "ref": [Circular]}).toMatchObject({"a": "world", "ref": [Circular]})
  ✅ {pass: false} expect({"ref": "not a ref"}).toMatchObject({"a": "hello", "ref": [Circular]})
toMatchObject() circular references transitive circular references
  ✅ {pass: true} expect({"a": "hello", "nestedObj": {"parentObj": [Circular]}}).toMatchObject({})
  ✅ {pass: true} expect({"a": "hello", "nestedObj": {"parentObj": [Circular]}}).toMatchObject({"a": "hello", "nestedObj": {"parentObj": [Circular]}})
  ✅ {pass: false} expect({}).toMatchObject({"a": "hello", "nestedObj": {"parentObj": [Circular]}})
  ✅ {pass: false} expect({"a": "world", "nestedObj": {"parentObj": [Circular]}}).toMatchObject({"a": "hello", "nestedObj": {"parentObj": [Circular]}})
  ✅ {pass: false} expect({"nestedObj": {"parentObj": "not the parent ref"}}).toMatchObject({"a": "hello", "nestedObj": {"parentObj": [Circular]}})
toMatchObject()
  ✅ {pass: true} expect({"a": "b", "c": "d"}).toMatchObject({"a": "b"})
  ✅ {pass: true} expect({"a": "b", "c": "d"}).toMatchObject({"a": "b", "c": "d"})
  ✅ {pass: true} expect({"a": "b", "t": {"x": {"r": "r"}, "z": "z"}}).toMatchObject({"a": "b", "t": {"z": "z"}})
  ✅ {pass: true} expect({"a": "b", "t": {"x": {"r": "r"}, "z": "z"}}).toMatchObject({"t": {"x": {"r": "r"}}})
  ✅ {pass: true} expect({"a": [3, 4, 5], "b": "b"}).toMatchObject({"a": [3, 4, 5]})
  ✅ {pass: true} expect({"a": [3, 4, 5, "v"], "b": "b"}).toMatchObject({"a": [3, 4, 5, "v"]})
  ✅ {pass: true} expect({"a": 1, "c": 2}).toMatchObject({"a": Any<Number>})
  ✅ {pass: true} expect({"a": {"x": "x", "y": "y"}}).toMatchObject({"a": {"x": Any<String>}})
  ✅ {pass: true} expect(Set {1, 2}).toMatchObject(Set {1, 2})
  ✅ {pass: true} expect(Set {1, 2}).toMatchObject(Set {2, 1})
  ✅ {pass: true} expect(2015-11-30T00:00:00.000Z).toMatchObject(2015-11-30T00:00:00.000Z)
  ✅ {pass: true} expect({"a": 2015-11-30T00:00:00.000Z, "b": "b"}).toMatchObject({"a": 2015-11-30T00:00:00.000Z})
  ✅ {pass: true} expect({"a": null, "b": "b"}).toMatchObject({"a": null})
  ✅ {pass: true} expect({"a": undefined, "b": "b"}).toMatchObject({"a": undefined})
  ✅ {pass: true} expect({"a": [{"a": "a", "b": "b"}]}).toMatchObject({"a": [{"a": "a"}]})
  ✅ {pass: true} expect([1, 2]).toMatchObject([1, 2])
  ✅ {pass: true} expect({"a": undefined}).toMatchObject({"a": undefined})
  ✅ {pass: true} expect([]).toMatchObject([])
  ✅ {pass: true} expect([Error: foo]).toMatchObject([Error: foo])
  ✅ {pass: true} expect([Error: bar]).toMatchObject({"message": "bar"})
  ✅ {pass: true} expect({}).toMatchObject({"a": undefined, "b": "b"})
  ✅ {pass: true} expect({"a": "b"}).toMatchObject({"a": "b"})
  ✅ {pass: true} expect({"a": "b", "c": "d", Symbol(jest): "jest"}).toMatchObject({"a": "b", Symbol(jest): "jest"})
  ✅ {pass: true} expect({"a": "b", "c": "d", Symbol(jest): "jest"}).toMatchObject({"a": "b", "c": "d", Symbol(jest): "jest"})
  ✅ {pass: true} expect({}).toMatchObject({"a": undefined, "b": "b", "c": "c"})
  ✅ {pass: true} expect({}).toMatchObject({"d": 4})
  ✅ {pass: true} expect({"a": "b", "toString": [Function toString]}).toMatchObject({"toString": Any<Function>})
  ✅ {pass: false} expect({"a": "b", "c": "d"}).toMatchObject({"e": "b"})
  ✅ {pass: false} expect({"a": "b", "c": "d"}).toMatchObject({"a": "b!", "c": "d"})
  ✅ {pass: false} expect({"a": "a", "c": "d"}).toMatchObject({"a": Any<Number>})
  ✅ {pass: false} expect({"a": "b", "t": {"x": {"r": "r"}, "z": "z"}}).toMatchObject({"a": "b", "t": {"z": [3]}})
  ✅ {pass: false} expect({"a": "b", "t": {"x": {"r": "r"}, "z": "z"}}).toMatchObject({"t": {"l": {"r": "r"}}})
  ✅ {pass: false} expect({"a": [3, 4, 5], "b": "b"}).toMatchObject({"a": [3, 4, 5, 6]})
  ✅ {pass: false} expect({"a": [3, 4, 5], "b": "b"}).toMatchObject({"a": [3, 4]})
  ✅ {pass: false} expect({"a": [3, 4, "v"], "b": "b"}).toMatchObject({"a": ["v"]})
  ✅ {pass: false} expect({"a": [3, 4, 5], "b": "b"}).toMatchObject({"a": {"b": 4}})
  ✅ {pass: false} expect({"a": [3, 4, 5], "b": "b"}).toMatchObject({"a": {"b": Any<String>}})
  ✅ {pass: false} expect([1, 2]).toMatchObject([1, 3])
  ✅ {pass: false} expect([0]).toMatchObject([-0])
  ✅ {pass: false} expect(Set {1, 2}).toMatchObject(Set {2})
  ✅ {pass: false} expect(2015-11-30T00:00:00.000Z).toMatchObject(2015-10-10T00:00:00.000Z)
  ✅ {pass: false} expect({"a": 2015-11-30T00:00:00.000Z, "b": "b"}).toMatchObject({"a": 2015-10-10T00:00:00.000Z})
  ✅ {pass: false} expect({"a": null, "b": "b"}).toMatchObject({"a": "4"})
  ✅ {pass: false} expect({"a": null, "b": "b"}).toMatchObject({"a": undefined})
  ✅ {pass: false} expect({"a": undefined}).toMatchObject({"a": null})
  ✅ {pass: false} expect({"a": [{"a": "a", "b": "b"}]}).toMatchObject({"a": [{"a": "c"}]})
  ✅ {pass: false} expect({"a": 1, "b": 1, "c": 1, "d": {"e": {"f": 555}}}).toMatchObject({"d": {"e": {"f": 222}}})
  ✅ {pass: false} expect({}).toMatchObject({"a": undefined})
  ✅ {pass: false} expect([1, 2, 3]).toMatchObject([2, 3, 1])
  ✅ {pass: false} expect([1, 2, 3]).toMatchObject([1, 2, 2])
  ✅ {pass: false} expect([Error: foo]).toMatchObject([Error: bar])
  ✅ {pass: false} expect({"a": "b"}).toMatchObject({"c": "d"})
  ✅ {pass: false} expect({"a": "b", "c": "d", Symbol(jest): "jest"}).toMatchObject({"a": "c", Symbol(jest): Any<String>})
  ✅ {pass: false} expect({"a": "b"}).toMatchObject({"toString": Any<Function>})
  ✅ throws expect(null).toMatchObject({})
  ✅ throws expect(4).toMatchObject({})
  ✅ throws expect("44").toMatchObject({})
  ✅ throws expect(true).toMatchObject({})
  ✅ throws expect(undefined).toMatchObject({})
  ✅ throws expect({}).toMatchObject(null)
  ✅ throws expect({}).toMatchObject(4)
  ✅ throws expect({}).toMatchObject("some string")
  ✅ throws expect({}).toMatchObject(true)
  ✅ throws expect({}).toMatchObject(undefined)
  ✅ does not match properties up in the prototype chain

 packages/expect/src/tests/spyMatchers.test.ts

toBeCalled
  ✅ works only on spies or jest.fn
  ✅ passes when called
  ✅ .not passes when called
  ✅ fails with any argument passed
  ✅ .not fails with any argument passed
  ✅ includes the custom mock name in the error message
toHaveBeenCalled
  ✅ works only on spies or jest.fn
  ✅ passes when called
  ✅ .not passes when called
  ✅ fails with any argument passed
  ✅ .not fails with any argument passed
  ✅ includes the custom mock name in the error message
toBeCalledTimes
  ✅ .not works only on spies or jest.fn
  ✅ only accepts a number argument
  ✅ .not only accepts a number argument
  ✅ passes if function called equal to expected times
  ✅ .not passes if function called more than expected times
  ✅ .not passes if function called less than expected times
  ✅ includes the custom mock name in the error message
toHaveBeenCalledTimes
  ✅ .not works only on spies or jest.fn
  ✅ only accepts a number argument
  ✅ .not only accepts a number argument
  ✅ passes if function called equal to expected times
  ✅ .not passes if function called more than expected times
  ✅ .not passes if function called less than expected times
  ✅ includes the custom mock name in the error message
lastCalledWith
  ✅ works only on spies or jest.fn
  ✅ works when not called
  ✅ works with no arguments
  ✅ works with arguments that don't match
  ✅ works with arguments that match
  ✅ works with trailing undefined arguments
  ✅ works with Map
  ✅ works with Set
  ✅ works with Immutable.js objects
  ✅ works with many arguments
  ✅ works with many arguments that don't match
  ✅ includes the custom mock name in the error message
toHaveBeenLastCalledWith
  ✅ works only on spies or jest.fn
  ✅ works when not called
  ✅ works with no arguments
  ✅ works with arguments that don't match
  ✅ works with arguments that match
  ✅ works with trailing undefined arguments
  ✅ works with Map
  ✅ works with Set
  ✅ works with Immutable.js objects
  ✅ works with many arguments
  ✅ works with many arguments that don't match
  ✅ includes the custom mock name in the error message
nthCalledWith
  ✅ works only on spies or jest.fn
  ✅ works when not called
  ✅ works with no arguments
  ✅ works with arguments that don't match
  ✅ works with arguments that match
  ✅ works with trailing undefined arguments
  ✅ works with Map
  ✅ works with Set
  ✅ works with Immutable.js objects
  ✅ works with three calls
  ✅ positive throw matcher error for n that is not positive integer
  ✅ positive throw matcher error for n that is not integer
  ✅ negative throw matcher error for n that is not integer
  ✅ includes the custom mock name in the error message
toHaveBeenNthCalledWith
  ✅ works only on spies or jest.fn
  ✅ works when not called
  ✅ works with no arguments
  ✅ works with arguments that don't match
  ✅ works with arguments that match
  ✅ works with trailing undefined arguments
  ✅ works with Map
  ✅ works with Set
  ✅ works with Immutable.js objects
  ✅ works with three calls
  ✅ positive throw matcher error for n that is not positive integer
  ✅ positive throw matcher error for n that is not integer
  ✅ negative throw matcher error for n that is not integer
  ✅ includes the custom mock name in the error message
toBeCalledWith
  ✅ works only on spies or jest.fn
  ✅ works when not called
  ✅ works with no arguments
  ✅ works with arguments that don't match
  ✅ works with arguments that match
  ✅ works with trailing undefined arguments
  ✅ works with Map
  ✅ works with Set
  ✅ works with Immutable.js objects
  ✅ works with many arguments
  ✅ works with many arguments that don't match
  ✅ includes the custom mock name in the error message
toHaveBeenCalledWith
  ✅ works only on spies or jest.fn
  ✅ works when not called
  ✅ works with no arguments
  ✅ works with arguments that don't match
  ✅ works with arguments that match
  ✅ works with trailing undefined arguments
  ✅ works with Map
  ✅ works with Set
  ✅ works with Immutable.js objects
  ✅ works with many arguments
  ✅ works with many arguments that don't match
  ✅ includes the custom mock name in the error message
toReturn
  ✅ .not works only on jest.fn
  ✅ throw matcher error if received is spy
  ✅ passes when returned
  ✅ passes when undefined is returned
  ✅ passes when at least one call does not throw
  ✅ .not passes when not returned
  ✅ .not passes when all calls throw
  ✅ .not passes when a call throws undefined
  ✅ fails with any argument passed
  ✅ .not fails with any argument passed
  ✅ includes the custom mock name in the error message
  ✅ incomplete recursive calls are handled properly
toHaveReturned
  ✅ .not works only on jest.fn
  ✅ throw matcher error if received is spy
  ✅ passes when returned
  ✅ passes when undefined is returned
  ✅ passes when at least one call does not throw
  ✅ .not passes when not returned
  ✅ .not passes when all calls throw
  ✅ .not passes when a call throws undefined
  ✅ fails with any argument passed
  ✅ .not fails with any argument passed
  ✅ includes the custom mock name in the error message
  ✅ incomplete recursive calls are handled properly
toReturnTimes
  ✅ throw matcher error if received is spy
  ✅ only accepts a number argument
  ✅ .not only accepts a number argument
  ✅ passes if function returned equal to expected times
  ✅ calls that return undefined are counted as returns
  ✅ .not passes if function returned more than expected times
  ✅ .not passes if function called less than expected times
  ✅ calls that throw are not counted
  ✅ calls that throw undefined are not counted
  ✅ includes the custom mock name in the error message
  ✅ incomplete recursive calls are handled properly
toHaveReturnedTimes
  ✅ throw matcher error if received is spy
  ✅ only accepts a number argument
  ✅ .not only accepts a number argument
  ✅ passes if function returned equal to expected times
  ✅ calls that return undefined are counted as returns
  ✅ .not passes if function returned more than expected times
  ✅ .not passes if function called less than expected times
  ✅ calls that throw are not counted
  ✅ calls that throw undefined are not counted
  ✅ includes the custom mock name in the error message
  ✅ incomplete recursive calls are handled properly
lastReturnedWith
  ✅ works only on spies or jest.fn
  ✅ works when not called
  ✅ works with no arguments
  ✅ works with argument that does not match
  ✅ works with argument that does match
  ✅ works with undefined
  ✅ works with Map
  ✅ works with Set
  ✅ works with Immutable.js objects directly created
  ✅ works with Immutable.js objects indirectly created
  ✅ a call that throws is not considered to have returned
  ✅ a call that throws undefined is not considered to have returned
  ✅ includes the custom mock name in the error message
lastReturnedWith lastReturnedWith
  ✅ works with three calls
  ✅ incomplete recursive calls are handled properly
toHaveLastReturnedWith
  ✅ works only on spies or jest.fn
  ✅ works when not called
  ✅ works with no arguments
  ✅ works with argument that does not match
  ✅ works with argument that does match
  ✅ works with undefined
  ✅ works with Map
  ✅ works with Set
  ✅ works with Immutable.js objects directly created
  ✅ works with Immutable.js objects indirectly created
  ✅ a call that throws is not considered to have returned
  ✅ a call that throws undefined is not considered to have returned
  ✅ includes the custom mock name in the error message
toHaveLastReturnedWith lastReturnedWith
  ✅ works with three calls
  ✅ incomplete recursive calls are handled properly
nthReturnedWith
  ✅ works only on spies or jest.fn
  ✅ works when not called
  ✅ works with no arguments
  ✅ works with argument that does not match
  ✅ works with argument that does match
  ✅ works with undefined
  ✅ works with Map
  ✅ works with Set
  ✅ works with Immutable.js objects directly created
  ✅ works with Immutable.js objects indirectly created
  ✅ a call that throws is not considered to have returned
  ✅ a call that throws undefined is not considered to have returned
  ✅ includes the custom mock name in the error message
nthReturnedWith nthReturnedWith
  ✅ works with three calls
  ✅ should replace 1st, 2nd, 3rd with first, second, third
  ✅ positive throw matcher error for n that is not positive integer
  ✅ should reject nth value greater than number of calls
  ✅ positive throw matcher error for n that is not integer
  ✅ negative throw matcher error for n that is not number
  ✅ incomplete recursive calls are handled properly
toHaveNthReturnedWith
  ✅ works only on spies or jest.fn
  ✅ works when not called
  ✅ works with no arguments
  ✅ works with argument that does not match
  ✅ works with argument that does match
  ✅ works with undefined
  ✅ works with Map
  ✅ works with Set
  ✅ works with Immutable.js objects directly created
  ✅ works with Immutable.js objects indirectly created
  ✅ a call that throws is not considered to have returned
  ✅ a call that throws undefined is not considered to have returned
  ✅ includes the custom mock name in the error message
toHaveNthReturnedWith nthReturnedWith
  ✅ works with three calls
  ✅ should replace 1st, 2nd, 3rd with first, second, third
  ✅ positive throw matcher error for n that is not positive integer
  ✅ should reject nth value greater than number of calls
  ✅ positive throw matcher error for n that is not integer
  ✅ negative throw matcher error for n that is not number
  ✅ incomplete recursive calls are handled properly
toReturnWith
  ✅ works only on spies or jest.fn
  ✅ works when not called
  ✅ works with no arguments
  ✅ works with argument that does not match
  ✅ works with argument that does match
  ✅ works with undefined
  ✅ works with Map
  ✅ works with Set
  ✅ works with Immutable.js objects directly created
  ✅ works with Immutable.js objects indirectly created
  ✅ a call that throws is not considered to have returned
  ✅ a call that throws undefined is not considered to have returned
  ✅ includes the custom mock name in the error message
toReturnWith returnedWith
  ✅ works with more calls than the limit
  ✅ incomplete recursive calls are handled properly
toHaveReturnedWith
  ✅ works only on spies or jest.fn
  ✅ works when not called
  ✅ works with no arguments
  ✅ works with argument that does not match
  ✅ works with argument that does match
  ✅ works with undefined
  ✅ works with Map
  ✅ works with Set
  ✅ works with Immutable.js objects directly created
  ✅ works with Immutable.js objects indirectly created
  ✅ a call that throws is not considered to have returned
  ✅ a call that throws undefined is not considered to have returned
  ✅ includes the custom mock name in the error message
toHaveReturnedWith returnedWith
  ✅ works with more calls than the limit
  ✅ incomplete recursive calls are handled properly

 packages/expect/src/tests/stacktrace.test.ts

✅ stack trace points to correct location when using matchers
✅ stack trace points to correct location when using nested matchers
✅ stack trace points to correct location when throwing from a custom matcher

 packages/expect/src/tests/symbolInObjects.test.ts

Symbol in objects
  ✅ should compare objects with Symbol keys
  ✅ should compare objects with mixed keys and Symbol
  ✅ should compare objects with different Symbol keys

 packages/expect/src/tests/toEqual-dom.test.ts

toEqual duck type Text
  ✅ isNot false
  ✅ isNot true
toEqual duck type Element
  ✅ isNot false
  ✅ isNot true
toEqual duck type Fragment
  ✅ isNot false
  ✅ isNot true
toEqual document createTextNode
  ✅ isNot false
  ✅ isNot true
toEqual document createElement
  ✅ isNot false
  ✅ isNot true
toEqual document createDocumentFragment
  ✅ isNot false
  ✅ isNot true

 packages/expect/src/tests/toThrowMatchers.test.ts

toThrowError
  ✅ to throw or not to throw
  ✅ invalid arguments
  ✅ invalid actual
toThrowError substring
  ✅ passes
  ✅ did not throw at all
  ✅ threw, but message did not match (error)
  ✅ threw, but message did not match (non-error falsey)
  ✅ properly escapes strings when matching against errors
  ✅ threw, but message should not match (error)
  ✅ threw, but message should not match (non-error truthy)
toThrowError regexp
  ✅ passes
  ✅ did not throw at all
  ✅ threw, but message did not match (error)
  ✅ threw, but message did not match (non-error falsey)
  ✅ threw, but message should not match (error)
  ✅ threw, but message should not match (non-error truthy)
toThrowError error class
  ✅ passes
  ✅ did not throw at all
  ✅ threw, but class did not match (error)
  ✅ threw, but class did not match (non-error falsey)
  ✅ threw, but class should not match (error)
  ✅ threw, but class should not match (error subclass)
  ✅ threw, but class should not match (error subsubclass)
toThrowError error-message pass
  ✅ isNot false
  ✅ isNot true
toThrowError error-message fail
  ✅ isNot false
  ✅ isNot true
  ✅ multiline diff highlight incorrect expected space
toThrowError asymmetric any-Class pass
  ✅ isNot false
  ✅ isNot true
toThrowError asymmetric any-Class fail
  ✅ isNot false
  ✅ isNot true
toThrowError asymmetric anything pass
  ✅ isNot false
  ✅ isNot true
toThrowError asymmetric anything fail
  ✅ isNot false
  ✅ isNot true
toThrowError asymmetric no-symbol pass
  ✅ isNot false
  ✅ isNot true
toThrowError asymmetric no-symbol fail
  ✅ isNot false
  ✅ isNot true
toThrowError asymmetric objectContaining pass
  ✅ isNot false
  ✅ isNot true
toThrowError asymmetric objectContaining fail
  ✅ isNot false
  ✅ isNot true
toThrowError promise/async throws if Error-like object is returned
  ✅ passes
  ✅ did not throw at all
  ✅ threw, but class did not match
  ✅ threw, but should not have
toThrowError expected is undefined
  ✅ threw, but should not have (non-error falsey)
toThrow
  ✅ to throw or not to throw
  ✅ invalid arguments
  ✅ invalid actual
toThrow substring
  ✅ passes
  ✅ did not throw at all
  ✅ threw, but message did not match (error)
  ✅ threw, but message did not match (non-error falsey)
  ✅ properly escapes strings when matching against errors
  ✅ threw, but message should not match (error)
  ✅ threw, but message should not match (non-error truthy)
toThrow regexp
  ✅ passes
  ✅ did not throw at all
  ✅ threw, but message did not match (error)
  ✅ threw, but message did not match (non-error falsey)
  ✅ threw, but message should not match (error)
  ✅ threw, but message should not match (non-error truthy)
toThrow error class
  ✅ passes
  ✅ did not throw at all
  ✅ threw, but class did not match (error)
  ✅ threw, but class did not match (non-error falsey)
  ✅ threw, but class should not match (error)
  ✅ threw, but class should not match (error subclass)
  ✅ threw, but class should not match (error subsubclass)
toThrow error-message pass
  ✅ isNot false
  ✅ isNot true
toThrow error-message fail
  ✅ isNot false
  ✅ isNot true
  ✅ multiline diff highlight incorrect expected space
toThrow asymmetric any-Class pass
  ✅ isNot false
  ✅ isNot true
toThrow asymmetric any-Class fail
  ✅ isNot false
  ✅ isNot true
toThrow asymmetric anything pass
  ✅ isNot false
  ✅ isNot true
toThrow asymmetric anything fail
  ✅ isNot false
  ✅ isNot true
toThrow asymmetric no-symbol pass
  ✅ isNot false
  ✅ isNot true
toThrow asymmetric no-symbol fail
  ✅ isNot false
  ✅ isNot true
toThrow asymmetric objectContaining pass
  ✅ isNot false
  ✅ isNot true
toThrow asymmetric objectContaining fail
  ✅ isNot false
  ✅ isNot true
toThrow promise/async throws if Error-like object is returned
  ✅ passes
  ✅ did not throw at all
  ✅ threw, but class did not match
  ✅ threw, but should not have
toThrow expected is undefined
  ✅ threw, but should not have (non-error falsey)

 packages/expect/src/tests/utils.test.ts

getPath()
  ✅ property exists
  ✅ property doesnt exist
  ✅ property exist but undefined
  ✅ property is a getter on class instance
  ✅ property is inherited
  ✅ path breaks
  ✅ empty object at the end
getObjectSubset
  ✅ expect(getObjectSubset({"a": "b", "c": "d"}, {"a": "d"})).toEqual({"a": "b"})
  ✅ expect(getObjectSubset({"a": [1, 2], "b": "b"}, {"a": [3, 4]})).toEqual({"a": [1, 2]})
  ✅ expect(getObjectSubset([{"a": "b", "c": "d"}], [{"a": "z"}])).toEqual([{"a": "b"}])
  ✅ expect(getObjectSubset([1, 2], [1, 2, 3])).toEqual([1, 2])
  ✅ expect(getObjectSubset({"a": [1]}, {"a": [1, 2]})).toEqual({"a": [1]})
  ✅ expect(getObjectSubset(2015-11-30T00:00:00.000Z, 2016-12-30T00:00:00.000Z)).toEqual(2015-11-30T00:00:00.000Z)
getObjectSubset returns the object instance if the subset has no extra properties
  ✅ Date
getObjectSubset returns the subset instance if its property values are equal
  ✅ Object
getObjectSubset returns the subset instance if its property values are equal Uint8Array
  ✅ expected
  ✅ received
getObjectSubset calculating subsets of objects with circular references
  ✅ simple circular references
  ✅ transitive circular references
emptyObject()
  ✅ matches an empty object
  ✅ does not match an object with keys
  ✅ does not match a non-object
subsetEquality()
  ✅ matching object returns true
  ✅ object without keys is undefined
  ✅ objects to not match
  ✅ null does not return errors
  ✅ undefined does not return errors
subsetEquality() matching subsets with circular references
  ✅ simple circular references
  ✅ referenced object on same level should not regarded as circular reference
  ✅ transitive circular references
iterableEquality
  ✅ returns true when given circular iterators
  ✅ returns true when given circular Set
  ✅ returns true when given nested Sets
  ✅ returns false when given inequal set within a set
  ✅ returns false when given inequal map within a set
  ✅ returns false when given inequal set within a map
  ✅ returns true when given circular Set shape
  ✅ returns true when given circular key in Map
  ✅ returns true when given nested Maps
  ✅ returns true when given circular key and value in Map
  ✅ returns true when given circular value in Map

 packages/jest-circus/src/tests/afterAll.test.ts

✅ tests are not marked done until their parent afterAll runs
✅ describe block cannot have hooks and no tests
✅ describe block _can_ have hooks if a child describe block has tests
✅ describe block hooks must not run if describe block is skipped
✅ child tests marked with todo should not run if describe block is skipped
✅ child tests marked with only should not run if describe block is skipped

 packages/jest-circus/src/tests/baseTest.test.ts

✅ simple test
✅ failures

 packages/jest-circus/src/tests/circusItTestError.test.ts

test/it error throwing
  ✅ it doesn't throw an error with valid arguments
  ✅ it throws error with missing callback function
  ✅ it throws an error when first argument isn't a string
  ✅ it throws an error when callback function is not a function
  ✅ test doesn't throw an error with valid arguments
  ✅ test throws error with missing callback function
  ✅ test throws an error when first argument isn't a string
  ✅ test throws an error when callback function is not a function

 packages/jest-circus/src/tests/circusItTodoTestError.test.ts

test/it.todo error throwing
  ✅ todo throws error when given no arguments
  ✅ todo throws error when given more than one argument
  ✅ todo throws error when given none string description

 packages/jest-circus/src/tests/hooks.test.ts

✅ beforeEach is executed before each test in current/child describe blocks
✅ multiple before each hooks in one describe are executed in the right order
✅ beforeAll is exectued correctly

 packages/jest-circus/src/tests/hooksError.test.ts

beforeEach hooks error throwing
  ✅ beforeEach throws an error when "String" is provided as a first argument to it
  ✅ beforeEach throws an error when 1 is provided as a first argument to it
  ✅ beforeEach throws an error when [] is provided as a first argument to it
  ✅ beforeEach throws an error when {} is provided as a first argument to it
  ✅ beforeEach throws an error when Symbol(hello) is provided as a first argument to it
  ✅ beforeEach throws an error when true is provided as a first argument to it
  ✅ beforeEach throws an error when null is provided as a first argument to it
  ✅ beforeEach throws an error when undefined is provided as a first argument to it
beforeAll hooks error throwing
  ✅ beforeAll throws an error when "String" is provided as a first argument to it
  ✅ beforeAll throws an error when 1 is provided as a first argument to it
  ✅ beforeAll throws an error when [] is provided as a first argument to it
  ✅ beforeAll throws an error when {} is provided as a first argument to it
  ✅ beforeAll throws an error when Symbol(hello) is provided as a first argument to it
  ✅ beforeAll throws an error when true is provided as a first argument to it
  ✅ beforeAll throws an error when null is provided as a first argument to it
  ✅ beforeAll throws an error when undefined is provided as a first argument to it
afterEach hooks error throwing
  ✅ afterEach throws an error when "String" is provided as a first argument to it
  ✅ afterEach throws an error when 1 is provided as a first argument to it
  ✅ afterEach throws an error when [] is provided as a first argument to it
  ✅ afterEach throws an error when {} is provided as a first argument to it
  ✅ afterEach throws an error when Symbol(hello) is provided as a first argument to it
  ✅ afterEach throws an error when true is provided as a first argument to it
  ✅ afterEach throws an error when null is provided as a first argument to it
  ✅ afterEach throws an error when undefined is provided as a first argument to it
afterAll hooks error throwing
  ✅ afterAll throws an error when "String" is provided as a first argument to it
  ✅ afterAll throws an error when 1 is provided as a first argument to it
  ✅ afterAll throws an error when [] is provided as a first argument to it
  ✅ afterAll throws an error when {} is provided as a first argument to it
  ✅ afterAll throws an error when Symbol(hello) is provided as a first argument to it
  ✅ afterAll throws an error when true is provided as a first argument to it
  ✅ afterAll throws an error when null is provided as a first argument to it
  ✅ afterAll throws an error when undefined is provided as a first argument to it

 packages/jest-cli/src/tests/cli/args.test.ts

check
  ✅ returns true if the arguments are valid
  ✅ raises an exception if runInBand and maxWorkers are both specified
  ✅ raises an exception if onlyChanged and watchAll are both specified
  ✅ raises an exception if onlyFailures and watchAll are both specified
  ✅ raises an exception when lastCommit and watchAll are both specified
  ✅ raises an exception if findRelatedTests is specified with no file paths
  ✅ raises an exception if maxWorkers is specified with no number
  ✅ allows maxWorkers to be a %
  ✅ allows using "js" file for --config option
  ✅ allows using "ts" file for --config option
  ✅ allows using "mjs" file for --config option
  ✅ allows using "cjs" file for --config option
  ✅ allows using "json" file for --config option
  ✅ raises an exception if selectProjects is not provided any project names
  ✅ raises an exception if config is not a valid JSON string
  ✅ raises an exception if config is not a supported file type
buildArgv
  ✅ should return only camelcased args

 packages/jest-cli/src/init/tests/init.test.js

init project with package.json and no jest config all questions answered with answer: "No"
  ✅ should return the default configuration (an empty config)
  ✅ should generate empty config with mjs extension
init project with package.json and no jest config some questions answered with answer: "Yes"
  ✅ should create configuration for {clearMocks: true}
  ✅ should create configuration for {coverage: true}
  ✅ should create configuration for {coverageProvider: "babel"}
  ✅ should create configuration for {coverageProvider: "v8"}
  ✅ should create configuration for {environment: "jsdom"}
  ✅ should create configuration for {environment: "node"}
  ✅ should create package.json with configured test command when {scripts: true}
init no package json
  ✅ should throw an error if there is no package.json file
init has-jest-config-file-js ask the user whether to override config or not
  ✅ user answered with "Yes"
  ✅ user answered with "No"
init has-jest-config-file-ts ask the user whether to override config or not
  ✅ user answered with "Yes"
  ✅ user answered with "No"
init has-jest-config-file-mjs ask the user whether to override config or not
  ✅ user answered with "Yes"
  ✅ user answered with "No"
init has-jest-config-file-cjs ask the user whether to override config or not
  ✅ user answered with "Yes"
  ✅ user answered with "No"
init has-jest-config-file-json ask the user whether to override config or not
  ✅ user answered with "Yes"
  ✅ user answered with "No"
init project using jest.config.ts ask the user whether he wants to use Typescript or not
  ✅ user answered with "Yes"
  ✅ user answered with "No"
init has jest config in package.json
  ✅ should ask the user whether to override config or not
init already has "jest" in packageJson.scripts.test
  ✅ should not ask "test script question"

 packages/jest-cli/src/init/tests/modifyPackageJson.test.ts

✅ should remove jest config if exists
✅ should add test script when there are no scripts
✅ should add test script when there are scripts
✅ should not add test script when { shouldModifyScripts: false }

 packages/jest-config/src/tests/Defaults.test.ts

✅ get configuration defaults

 packages/jest-config/src/tests/getMaxWorkers.test.ts

getMaxWorkers
  ✅ Returns 1 when runInBand
  ✅ Returns 1 when the OS CPUs are not available
  ✅ Returns the `maxWorkers` when specified
  ✅ Returns based on the number of cpus
getMaxWorkers % based
  ✅ 50% = 2 workers
  ✅ < 0 workers should become 1
  ✅ 0% shouldn't break

 packages/jest-config/src/tests/normalize.test.js

✅ picks a name based on the rootDir
✅ keeps custom project name based on the projects rootDir
✅ keeps custom names based on the rootDir
✅ minimal config is stable across runs
✅ sets coverageReporters correctly when argv.json is set
rootDir
  ✅ throws if the options is missing a rootDir property
automock
  ✅ falsy automock is not overwritten
collectCoverageOnlyFrom
  ✅ normalizes all paths relative to rootDir
  ✅ does not change absolute paths
  ✅ substitutes <rootDir> tokens
collectCoverageFrom
  ✅ substitutes <rootDir> tokens
findRelatedTests
  ✅ it generates --coverageCoverageFrom patterns when needed
roots
  ✅ normalizes all paths relative to rootDir
  ✅ does not change absolute paths
  ✅ substitutes <rootDir> tokens
transform
  ✅ normalizes the path
  ✅ pulls in config if it's passed as an array, and defaults to empty object
haste
  ✅ normalizes the path for hasteImplModulePath
setupFilesAfterEnv
  ✅ normalizes the path according to rootDir
  ✅ does not change absolute paths
  ✅ substitutes <rootDir> tokens
setupTestFrameworkScriptFile
  ✅ logs a deprecation warning when `setupTestFrameworkScriptFile` is used
  ✅ logs an error when `setupTestFrameworkScriptFile` and `setupFilesAfterEnv` are used
coveragePathIgnorePatterns
  ✅ does not normalize paths relative to rootDir
  ✅ does not normalize trailing slashes
  ✅ substitutes <rootDir> tokens
watchPathIgnorePatterns
  ✅ does not normalize paths relative to rootDir
  ✅ does not normalize trailing slashes
  ✅ substitutes <rootDir> tokens
testPathIgnorePatterns
  ✅ does not normalize paths relative to rootDir
  ✅ does not normalize trailing slashes
  ✅ substitutes <rootDir> tokens
modulePathIgnorePatterns
  ✅ does not normalize paths relative to rootDir
  ✅ does not normalize trailing slashes
  ✅ substitutes <rootDir> tokens
testRunner
  ✅ defaults to Circus
  ✅ resolves jasmine
  ✅ is overwritten by argv
coverageDirectory
  ✅ defaults to <rootDir>/coverage
testEnvironment
  ✅ resolves to an environment and prefers jest-environment-`name`
  ✅ throws on invalid environment names
  ✅ works with rootDir
babel-jest
  ✅ correctly identifies and uses babel-jest
  ✅ uses babel-jest if babel-jest is explicitly specified in a custom transform options
Upgrade help
  ✅ logs a warning when `scriptPreprocessor` and/or `preprocessorIgnorePatterns` are used
testRegex
  ✅ testRegex empty string is mapped to empty array
  ✅ testRegex string is mapped to an array
  ✅ testRegex array is preserved
testMatch
  ✅ testMatch default not applied if testRegex is set
  ✅ testRegex default not applied if testMatch is set
  ✅ throws if testRegex and testMatch are both specified
  ✅ normalizes testMatch
moduleDirectories
  ✅ defaults to node_modules
  ✅ normalizes moduleDirectories
preset
  ✅ throws when preset not found
  ✅ throws when module was found but no "jest-preset.js" or "jest-preset.json" files
  ✅ throws when a dependency is missing in the preset
  ✅ throws when preset is invalid
  ✅ throws when preset evaluation throws type error
  ✅ works with "react-native"
  ✅ searches for .json and .js preset files
  ✅ merges with options
  ✅ merges with options and moduleNameMapper preset is overridden by options
  ✅ merges with options and transform preset is overridden by options
  ✅ extracts setupFilesAfterEnv from preset
preset with globals
  ✅ should merge the globals preset correctly
preset without setupFiles
  ✅ should normalize setupFiles correctly
preset without setupFilesAfterEnv
  ✅ should normalize setupFilesAfterEnv correctly
runner
  ✅ defaults to `jest-runner`
  ✅ resolves to runners that do not have the prefix
  ✅ resolves to runners and prefers jest-runner-`name`
  ✅ throw error when a runner is not found
watchPlugins
  ✅ defaults to undefined
  ✅ resolves to watch plugins and prefers jest-watch-`name`
  ✅ resolves watch plugins that do not have the prefix
  ✅ normalizes multiple watchPlugins
  ✅ throw error when a watch plugin is not found
testPathPattern
  ✅ defaults to empty
  ✅ joins multiple --testPathPatterns and <regexForTestFiles>
  ✅ gives precedence to --all
testPathPattern --testPathPattern
  ✅ uses --testPathPattern if set
  ✅ ignores invalid regular expressions and logs a warning
  ✅ joins multiple --testPathPattern if set
testPathPattern --testPathPattern posix
  ✅ should not escape the pattern
testPathPattern --testPathPattern win32
  ✅ preserves any use of "\"
  ✅ replaces POSIX path separators
  ✅ replaces POSIX paths in multiple args
  ✅ coerces all patterns to strings
testPathPattern <regexForTestFiles>
  ✅ uses <regexForTestFiles> if set
  ✅ ignores invalid regular expressions and logs a warning
  ✅ joins multiple <regexForTestFiles> if set
testPathPattern <regexForTestFiles> posix
  ✅ should not escape the pattern
testPathPattern <regexForTestFiles> win32
  ✅ preserves any use of "\"
  ✅ replaces POSIX path separators
  ✅ replaces POSIX paths in multiple args
  ✅ coerces all patterns to strings
moduleFileExtensions
  ✅ defaults to something useful
  ✅ throws if missing `js` but using jest-runner
  ✅ does not throw if missing `js` with a custom runner
cwd
  ✅ is set to process.cwd
  ✅ is not lost if the config has its own cwd property
Defaults
  ✅ should be accepted by normalize
displayName
  ✅ should throw an error when displayName is is an empty object
  ✅ should throw an error when displayName is missing color
  ✅ should throw an error when displayName is missing name
  ✅ should throw an error when displayName is using invalid values
  ✅ generates a default color for the runner undefined
  ✅ generates a default color for the runner jest-runner
  ✅ generates a default color for the runner jest-runner-eslint
  ✅ generates a default color for the runner jest-runner-tslint
  ✅ generates a default color for the runner jest-runner-tsc
testTimeout
  ✅ should return timeout value if defined
  ✅ should throw an error if timeout is a negative number
extensionsToTreatAsEsm
  ✅ should pass valid config through
  ✅ should enforce leading dots
  ✅ throws on .js
  ✅ throws on .mjs
  ✅ throws on .cjs

 packages/jest-config/src/tests/readConfig.test.ts

✅ readConfig() throws when an object is passed without a file path

 packages/jest-config/src/tests/readConfigs.test.ts

✅ readConfigs() throws when called without project paths
✅ readConfigs() loads async config file
✅ readConfigs() reject if async was rejected

 packages/jest-config/src/tests/resolveConfigPath.test.ts

Resolve config path .js
  ✅ file path with ".js"
  ✅ directory path with ".js"
Resolve config path .ts
  ✅ file path with ".ts"
  ✅ directory path with ".ts"
Resolve config path .mjs
  ✅ file path with ".mjs"
  ✅ directory path with ".mjs"
Resolve config path .cjs
  ✅ file path with ".cjs"
  ✅ directory path with ".cjs"
Resolve config path .json
  ✅ file path with ".json"
  ✅ directory path with ".json"

 packages/jest-config/src/tests/setFromArgv.test.ts

✅ maps special values to valid options
✅ maps regular values to themselves
✅ works with string objects
✅ explicit flags override those from --config

 packages/jest-config/src/tests/validatePattern.test.ts

validate pattern function
  ✅ without passed args returns true
  ✅ returns true for empty pattern
  ✅ returns true for valid pattern
  ✅ returns false for invalid pattern

 packages/jest-console/src/tests/bufferedConsole.test.ts

CustomConsole assert
  ✅ do not log when the assertion is truthy
  ✅ do not log when the assertion is truthy and there is a message
  ✅ log the assertion error when the assertion is falsy
  ✅ log the assertion error when the assertion is falsy with another message argument
CustomConsole count
  ✅ count using the default counter
  ✅ count using the a labeled counter
  ✅ countReset restarts default counter
  ✅ countReset restarts custom counter
CustomConsole group
  ✅ group without label
  ✅ group with label
  ✅ groupEnd remove the indentation of the current group
  ✅ groupEnd can not remove the indentation below the starting point
CustomConsole time
  ✅ should return the time between time() and timeEnd() on default timer
  ✅ should return the time between time() and timeEnd() on custom timer
CustomConsole dir
  ✅ should print the deepest value
CustomConsole timeLog
  ✅ should return the time between time() and timeEnd() on default timer
  ✅ should return the time between time() and timeEnd() on custom timer
  ✅ default timer with data
  ✅ custom timer with data
CustomConsole console
  ✅ should be able to initialize console instance

 packages/jest-console/src/tests/CustomConsole.test.ts

CustomConsole log
  ✅ should print to stdout
CustomConsole error
  ✅ should print to stderr
CustomConsole warn
  ✅ should print to stderr
CustomConsole assert
  ✅ do not log when the assertion is truthy
  ✅ do not log when the assertion is truthy and there is a message
  ✅ log the assertion error when the assertion is falsy
  ✅ log the assertion error when the assertion is falsy with another message argument
CustomConsole count
  ✅ count using the default counter
  ✅ count using the a labeled counter
  ✅ countReset restarts default counter
  ✅ countReset restarts custom counter
CustomConsole group
  ✅ group without label
  ✅ group with label
  ✅ groupEnd remove the indentation of the current group
  ✅ groupEnd can not remove the indentation below the starting point
CustomConsole time
  ✅ should return the time between time() and timeEnd() on default timer
  ✅ should return the time between time() and timeEnd() on custom timer
CustomConsole dir
  ✅ should print the deepest value
CustomConsole timeLog
  ✅ should return the time between time() and timeEnd() on default timer
  ✅ should return the time between time() and timeEnd() on custom timer
  ✅ default timer with data
  ✅ custom timer with data
CustomConsole console
  ✅ should be able to initialize console instance

 packages/jest-console/src/tests/getConsoleOutput.test.ts

getConsoleOutput
  ✅ takes noStackTrace and pass it on for assert
  ✅ takes noStackTrace and pass it on for count
  ✅ takes noStackTrace and pass it on for debug
  ✅ takes noStackTrace and pass it on for dir
  ✅ takes noStackTrace and pass it on for dirxml
  ✅ takes noStackTrace and pass it on for error
  ✅ takes noStackTrace and pass it on for group
  ✅ takes noStackTrace and pass it on for groupCollapsed
  ✅ takes noStackTrace and pass it on for info
  ✅ takes noStackTrace and pass it on for log
  ✅ takes noStackTrace and pass it on for time
  ✅ takes noStackTrace and pass it on for warn

 packages/jest-core/src/tests/FailedTestsCache.test.js

FailedTestsCache
  ✅ should filter tests

 packages/jest-core/src/tests/getNoTestsFoundMessage.test.js

getNoTestsFoundMessage
  ✅ returns correct message when monitoring only failures
  ✅ returns correct message when monitoring only changed
  ✅ returns correct message with verbose option
  ✅ returns correct message without options
  ✅ returns correct message with passWithNoTests

 packages/jest-core/src/tests/globals.test.ts

Common globals
  ✅ check process

 packages/jest-core/src/tests/runJest.test.js

runJest
  ✅ when watch is set then exit process
  ✅ when watch is set then an error message is printed

 packages/jest-core/src/tests/SearchSource.test.ts

SearchSource isTestFilePath
  ✅ supports ../ paths and unix separators via testRegex
  ✅ supports unix separators
  ✅ supports win32 separators
SearchSource testPathsMatching
  ✅ finds tests matching a pattern via testRegex
  ✅ finds tests matching a pattern via testMatch
  ✅ finds tests matching a JS regex pattern
  ✅ finds tests matching a JS glob pattern
  ✅ finds tests matching a JS with overriding glob patterns
  ✅ finds tests with default file extensions using testRegex
  ✅ finds tests with default file extensions using testMatch
  ✅ finds tests with parentheses in their rootDir when using testMatch
  ✅ finds tests with similar but custom file extensions
  ✅ finds tests with totally custom foobar file extensions
  ✅ finds tests with many kinds of file extensions
  ✅ finds tests using a regex only
  ✅ finds tests using a glob only
SearchSource findRelatedTests
  ✅ makes sure a file is related to itself
  ✅ finds tests that depend directly on the path
  ✅ excludes untested files from coverage
SearchSource findRelatedTestsFromPattern
  ✅ returns empty search result for empty input
  ✅ returns empty search result for invalid input
  ✅ returns empty search result if no related tests were found
  ✅ finds tests for a single file
  ✅ finds tests for multiple files
  ✅ does not mistake roots folders with prefix names
SearchSource findRelatedSourcesFromTestsInChangedFiles
  ✅ return empty set if no SCM
  ✅ return sources required by tests

 packages/jest-core/src/tests/SnapshotInteractiveMode.test.js

SnapshotInteractiveMode
  ✅ is inactive at construction
  ✅ call to run process the first file
  ✅ call to abort
  ✅ call to reset
  ✅ press Q or ESC triggers an abort
  ✅ press ENTER trigger a run
  ✅ skip 1 test, then restart
  ✅ skip 1 test, then quit
  ✅ update 1 test, then finish and return
  ✅ skip 2 tests, then finish and restart
  ✅ update 2 tests, then finish and return
  ✅ update 1 test, skip 1 test, then finish and restart
  ✅ skip 1 test, update 1 test, then finish and restart

 packages/jest-core/src/tests/TestScheduler.test.js

✅ config for reporters supports `default`
✅ .addReporter() .removeReporter()
✅ schedule tests run in parallel per default
✅ schedule tests run in serial if the runner flags them
✅ should bail after `n` failures
✅ should not bail if less than `n` failures
✅ should set runInBand to run in serial
✅ should set runInBand to not run in serial

 packages/jest-core/src/tests/testSchedulerHelper.test.js

✅ shouldRunInBand() - should return true for runInBand mode
✅ shouldRunInBand() - should return true for runInBand mode
✅ shouldRunInBand() - should return false for runInBand mode
✅ shouldRunInBand() - should return false for runInBand mode
✅ shouldRunInBand() - should return false for runInBand mode
✅ shouldRunInBand() - should return true for runInBand mode
✅ shouldRunInBand() - should return false for runInBand mode
✅ shouldRunInBand() - should return true for runInBand mode
✅ shouldRunInBand() - should return true for runInBand mode
✅ shouldRunInBand() - should return false for runInBand mode
✅ shouldRunInBand() - should return false for runInBand mode
✅ shouldRunInBand() - should return true for runInBand mode

 packages/jest-core/src/tests/watch.test.js

Watch mode flows
  ✅ Correctly passing test path pattern
  ✅ Correctly passing test name pattern
  ✅ Runs Jest once by default and shows usage
  ✅ Runs Jest in a non-interactive environment not showing usage
  ✅ resolves relative to the package root
  ✅ shows prompts for WatchPlugins in alphabetical order
  ✅ shows update snapshot prompt (without interactive)
  ✅ shows update snapshot prompt (with interactive)
  ✅ allows WatchPlugins to hook into JestHook
  ✅ allows WatchPlugins to override eligible internal plugins
  ✅ allows WatchPlugins to be configured
  ✅ allows WatchPlugins to hook into file system changes
  ✅ makes watch plugin initialization errors look nice
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ allows WatchPlugins to modify only white-listed global config keys
  ✅ triggers enter on a WatchPlugin when its key is pressed
  ✅ prevents Jest from handling keys when active and returns control when end is called
  ✅ Pressing "o" runs test in "only changed files" mode
  ✅ Pressing "a" runs test in "watch all" mode
  ✅ Pressing "ENTER" reruns the tests
  ✅ Pressing "t" reruns the tests in "test name pattern" mode
  ✅ Pressing "p" reruns the tests in "filename pattern" mode
  ✅ Can combine "p" and "t" filters
  ✅ Pressing "u" reruns the tests in "update snapshot" mode
  ✅ passWithNoTest should be set to true in watch mode
  ✅ shows the correct usage for the f key in "only failed tests" mode
Watch mode flows when dealing with potential watch plugin key conflicts
  ✅ forbids WatchPlugins overriding reserved internal plugins
  ✅ forbids WatchPlugins overriding reserved internal plugins
  ✅ forbids WatchPlugins overriding reserved internal plugins
  ✅ allows WatchPlugins to override non-reserved internal plugins
  ✅ allows WatchPlugins to override non-reserved internal plugins
  ✅ forbids third-party WatchPlugins overriding each other

 packages/jest-core/src/tests/watchFileChanges.test.ts

Watch mode flows with changed files
  ✅ should correct require new files without legacy cache

 packages/jest-core/src/tests/watchFilenamePatternMode.test.js

Watch mode flows
  ✅ Pressing "P" enters pattern mode
  ✅ Pressing "c" clears the filters

 packages/jest-core/src/tests/watchTestNamePatternMode.test.js

Watch mode flows
  ✅ Pressing "T" enters pattern mode

 packages/jest-core/src/lib/tests/isValidPath.test.ts

✅ is valid when it is a file inside roots
✅ is not valid when it is a snapshot file
✅ is not valid when it is a file in the coverage dir

 packages/jest-core/src/lib/tests/logDebugMessages.test.ts

✅ prints the jest version
✅ prints the test framework name
✅ prints the config object

 packages/jest-create-cache-key-function/src/tests/index.test.ts

✅ creation of a cache key

 packages/jest-diff/src/tests/diff.test.ts

different types
  ✅ '1' and 'a'
  ✅ '[object Object]' and 'a'
  ✅ '' and '2'
  ✅ 'null' and 'undefined'
  ✅ '() => {}' and '3'
no visual difference
  ✅ '"a"' and '"a"'
  ✅ '{}' and '{}'
  ✅ '[]' and '[]'
  ✅ '[1,2]' and '[1,2]'
  ✅ '11' and '11'
  ✅ 'null' and 'null'
  ✅ 'null' and 'null'
  ✅ 'undefined' and 'undefined'
  ✅ 'null' and 'null'
  ✅ 'undefined' and 'undefined'
  ✅ 'false' and 'false'
  ✅ '{"a":1}' and '{"a":1}'
  ✅ '{"a":{"b":5}}' and '{"a":{"b":5}}'
  ✅ Map key order should be irrelevant
  ✅ Set value order should be irrelevant
✅ oneline strings
✅ numbers
✅ -0 and 0
✅ booleans
✅ collapses big diffs to patch format
falls back to not call toJSON if serialization has no differences
  ✅ but then objects have differences
  ✅ and then objects have no differences
falls back to not call toJSON if it throws
  ✅ and then objects have differences
  ✅ and then objects have no differences
multiline strings
  ✅ (unexpanded)
  ✅ (expanded)
objects
  ✅ (unexpanded)
  ✅ (expanded)
multiline string non-snapshot
  ✅ (unexpanded)
  ✅ (expanded)
multiline string snapshot
  ✅ (unexpanded)
  ✅ (expanded)
React elements
  ✅ (unexpanded)
  ✅ (expanded)
multiline string as value of object property (non-snapshot)
  ✅ (unexpanded)
  ✅ (expanded)
multiline string as value of object property (snapshot)
  ✅ (unexpanded)
  ✅ (expanded)
indentation in JavaScript structures from less to more
  ✅ (unexpanded)
  ✅ (expanded)
indentation in JavaScript structures from more to less
  ✅ (unexpanded)
  ✅ (expanded)
color of text
  ✅ (expanded)
  ✅ (unexpanded)
indentation in React elements (non-snapshot) from less to more
  ✅ (unexpanded)
  ✅ (expanded)
indentation in React elements (non-snapshot) from more to less
  ✅ (unexpanded)
  ✅ (expanded)
indentation in React elements (snapshot) from less to more
  ✅ (unexpanded)
  ✅ (expanded)
indentation in React elements (snapshot) from more to less
  ✅ (unexpanded)
  ✅ (expanded)
outer React element (non-snapshot) from less to more
  ✅ (unexpanded)
  ✅ (expanded)
outer React element (non-snapshot) from more to less
  ✅ (unexpanded)
  ✅ (expanded)
trailing newline in multiline string not enclosed in quotes from less to more
  ✅ (unexpanded)
  ✅ (expanded)
trailing newline in multiline string not enclosed in quotes from more to less
  ✅ (unexpanded)
  ✅ (expanded)
context
  ✅ number of lines: -1 (5 default)
  ✅ number of lines: 0
  ✅ number of lines: 1
  ✅ number of lines: 2
  ✅ number of lines: 3.1 (5 default)
  ✅ number of lines: undefined (5 default)
diffLinesUnified edge cases
  ✅ a empty string b empty string
  ✅ a empty string b one line
  ✅ a multiple lines b empty string
  ✅ a one line b multiple lines
diffLinesUnified2 edge cases
  ✅ a empty string b empty string
  ✅ a empty string b one line
  ✅ a multiple lines b empty string
  ✅ a one line b multiple lines
diffLinesUnified2 edge cases lengths not equal
  ✅ a
  ✅ b
diffStringsUnified edge cases
  ✅ empty both a and b
  ✅ empty only a
  ✅ empty only b
  ✅ equal both non-empty
  ✅ multiline has no common after clean up chaff
  ✅ one-line has no common after clean up chaff
options 7980
  ✅ diff
  ✅ diffStringsUnified
options change indicators
  ✅ diff
options change color
  ✅ diffStringsUnified
  ✅ no diff
options common
  ✅ diff
  ✅ no diff
options includeChangeCounts false
  ✅ diffLinesUnified
  ✅ diffStringsUnified
options includeChangeCounts true padding
  ✅ diffLinesUnified a has 2 digits
  ✅ diffLinesUnified b has 2 digits
  ✅ diffStringsUnified
options omitAnnotationLines true
  ✅ diff
  ✅ diffStringsUnified and includeChangeCounts true
  ✅ diffStringsUnified empty strings
options trailingSpaceFormatter
  ✅ diffDefault default no color
  ✅ diffDefault middle dot
  ✅ diffDefault yellowish common
options emptyFirstOrLastLinePlaceholder default empty string
  ✅ diffDefault
  ✅ diffStringsUnified

 packages/jest-diff/src/tests/diffStringsRaw.test.ts

diffStringsRaw
  ✅ one-line with cleanup
  ✅ one-line without cleanup

 packages/jest-diff/src/tests/getAlignedDiffs.test.ts

getAlignedDiffs lines
  ✅ change preceding and following common
  ✅ common preceding and following change
  ✅ common at end when both current change lines are empty
  ✅ common between delete and insert
  ✅ common between insert and delete
getAlignedDiffs newline
  ✅ delete only
  ✅ insert only
  ✅ delete with adjacent change
  ✅ insert with adjacent changes
  ✅ change from space
  ✅ change to space
getAlignedDiffs substrings first
  ✅ common when both current change lines are empty
  ✅ common when either current change line is non-empty
  ✅ delete completes the current line
  ✅ insert completes the current line
getAlignedDiffs substrings middle
  ✅ is empty in delete between common
  ✅ is empty in insert at start
  ✅ is non-empty in delete at end
  ✅ is non-empty in insert between common
getAlignedDiffs substrings last
  ✅ is empty in delete at end
  ✅ is empty in insert at end
  ✅ is non-empty in common not at end
getAlignedDiffs strings
  ✅ change at start and delete or insert at end
  ✅ delete or insert at start and change at end

 packages/jest-diff/src/tests/joinAlignedDiffs.test.ts

joinAlignedDiffsExpand
  ✅ first line is empty common
joinAlignedDiffsNoExpand
  ✅ patch 0 with context 1 and change at start and end
  ✅ patch 0 with context 5 and first line is empty common
  ✅ patch 1 with context 4 and last line is empty common
  ✅ patch 2 with context 3
  ✅ patch 3 with context 2 and omit excess common at start

 packages/jest-docblock/src/tests/index.test.ts

docblock
  ✅ extracts valid docblock with line comment
  ✅ extracts valid docblock
  ✅ extracts valid docblock with more comments
  ✅ extracts from invalid docblock
  ✅ returns extract and parsedocblock
  ✅ parses directives out of a docblock
  ✅ parses multiple of the same directives out of a docblock
  ✅ parses >=3 of the same directives out of a docblock
  ✅ parses directives out of a docblock with comments
  ✅ parses directives out of a docblock with line comments
  ✅ parses multiline directives
  ✅ parses multiline directives even if there are linecomments within the docblock
  ✅ supports slashes in @team directive
  ✅ extracts comments from docblock
  ✅ extracts multiline comments from docblock
  ✅ preserves leading whitespace in multiline comments from docblock
  ✅ removes leading newlines in multiline comments from docblock
  ✅ extracts comments from beginning and end of docblock
  ✅ preserve urls within a pragma's values
  ✅ strip linecomments from pragmas but preserve for comments
  ✅ extracts docblock comments as CRLF when docblock contains CRLF
  ✅ extracts docblock comments as LF when docblock contains LF
  ✅ strips the docblock out of a file that contains a top docblock
  ✅ returns a file unchanged if there is no top docblock to strip
  ✅ prints docblocks with no pragmas as empty string
  ✅ prints docblocks with one pragma on one line
  ✅ prints docblocks with multiple pragmas on multiple lines
  ✅ prints docblocks with multiple of the same pragma
  ✅ prints docblocks with pragmas
  ✅ prints docblocks with comments
  ✅ prints docblocks with comments and no keys
  ✅ prints docblocks with multiline comments
  ✅ prints docblocks that are parseable
  ✅ can augment existing docblocks with comments
  ✅ prints docblocks using CRLF if comments contains CRLF
  ✅ prints docblocks using LF if comments contains LF

 packages/jest-each/src/tests/array.test.ts

jest-each .test
  ✅ throws an error when not called with an array
  ✅ throws an error when called with an empty array
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using printf format
  ✅ does not call global test with title containing more param values than sprintf placeholders
  ✅ calls global test title with %p placeholder injected at the correct positions
  ✅ does not calls global test title with %p placeholder when no data is supplied at given position
  ✅ calls global with cb function containing all parameters of each test case when given 1d array
  ✅ calls global with cb function containing all parameters of each test case 2d array
  ✅ calls global with given timeout
jest-each .test.concurrent
  ✅ throws an error when not called with an array
  ✅ throws an error when called with an empty array
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using printf format
  ✅ does not call global test with title containing more param values than sprintf placeholders
  ✅ calls global test title with %p placeholder injected at the correct positions
  ✅ does not calls global test title with %p placeholder when no data is supplied at given position
  ✅ calls global with cb function containing all parameters of each test case when given 1d array
  ✅ calls global with cb function containing all parameters of each test case 2d array
  ✅ calls global with given timeout
jest-each .test.concurrent.only
  ✅ throws an error when not called with an array
  ✅ throws an error when called with an empty array
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using printf format
  ✅ does not call global test with title containing more param values than sprintf placeholders
  ✅ calls global test title with %p placeholder injected at the correct positions
  ✅ does not calls global test title with %p placeholder when no data is supplied at given position
  ✅ calls global with cb function containing all parameters of each test case when given 1d array
  ✅ calls global with cb function containing all parameters of each test case 2d array
  ✅ calls global with given timeout
jest-each .test.concurrent.skip
  ✅ throws an error when not called with an array
  ✅ throws an error when called with an empty array
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using printf format
  ✅ does not call global test with title containing more param values than sprintf placeholders
  ✅ calls global test title with %p placeholder injected at the correct positions
  ✅ does not calls global test title with %p placeholder when no data is supplied at given position
  ✅ calls global with cb function containing all parameters of each test case when given 1d array
  ✅ calls global with cb function containing all parameters of each test case 2d array
  ✅ calls global with given timeout
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using sprintf format
  ✅ calls global with title with placeholder values correctly interpolated
jest-each .test.only
  ✅ throws an error when not called with an array
  ✅ throws an error when called with an empty array
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using printf format
  ✅ does not call global test with title containing more param values than sprintf placeholders
  ✅ calls global test title with %p placeholder injected at the correct positions
  ✅ does not calls global test title with %p placeholder when no data is supplied at given position
  ✅ calls global with cb function containing all parameters of each test case when given 1d array
  ✅ calls global with cb function containing all parameters of each test case 2d array
  ✅ calls global with given timeout
jest-each .it
  ✅ throws an error when not called with an array
  ✅ throws an error when called with an empty array
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using printf format
  ✅ does not call global test with title containing more param values than sprintf placeholders
  ✅ calls global test title with %p placeholder injected at the correct positions
  ✅ does not calls global test title with %p placeholder when no data is supplied at given position
  ✅ calls global with cb function containing all parameters of each test case when given 1d array
  ✅ calls global with cb function containing all parameters of each test case 2d array
  ✅ calls global with given timeout
jest-each .fit
  ✅ throws an error when not called with an array
  ✅ throws an error when called with an empty array
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using printf format
  ✅ does not call global test with title containing more param values than sprintf placeholders
  ✅ calls global test title with %p placeholder injected at the correct positions
  ✅ does not calls global test title with %p placeholder when no data is supplied at given position
  ✅ calls global with cb function containing all parameters of each test case when given 1d array
  ✅ calls global with cb function containing all parameters of each test case 2d array
  ✅ calls global with given timeout
jest-each .it.only
  ✅ throws an error when not called with an array
  ✅ throws an error when called with an empty array
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using printf format
  ✅ does not call global test with title containing more param values than sprintf placeholders
  ✅ calls global test title with %p placeholder injected at the correct positions
  ✅ does not calls global test title with %p placeholder when no data is supplied at given position
  ✅ calls global with cb function containing all parameters of each test case when given 1d array
  ✅ calls global with cb function containing all parameters of each test case 2d array
  ✅ calls global with given timeout
jest-each .describe
  ✅ throws an error when not called with an array
  ✅ throws an error when called with an empty array
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using printf format
  ✅ does not call global test with title containing more param values than sprintf placeholders
  ✅ calls global test title with %p placeholder injected at the correct positions
  ✅ does not calls global test title with %p placeholder when no data is supplied at given position
  ✅ calls global with cb function containing all parameters of each test case when given 1d array
  ✅ calls global with cb function containing all parameters of each test case 2d array
  ✅ calls global with given timeout
jest-each .fdescribe
  ✅ throws an error when not called with an array
  ✅ throws an error when called with an empty array
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using printf format
  ✅ does not call global test with title containing more param values than sprintf placeholders
  ✅ calls global test title with %p placeholder injected at the correct positions
  ✅ does not calls global test title with %p placeholder when no data is supplied at given position
  ✅ calls global with cb function containing all parameters of each test case when given 1d array
  ✅ calls global with cb function containing all parameters of each test case 2d array
  ✅ calls global with given timeout
jest-each .describe.only
  ✅ throws an error when not called with an array
  ✅ throws an error when called with an empty array
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using printf format
  ✅ does not call global test with title containing more param values than sprintf placeholders
  ✅ calls global test title with %p placeholder injected at the correct positions
  ✅ does not calls global test title with %p placeholder when no data is supplied at given position
  ✅ calls global with cb function containing all parameters of each test case when given 1d array
  ✅ calls global with cb function containing all parameters of each test case 2d array
  ✅ calls global with given timeout
jest-each done callback
  ✅ calls [ 'test' ] with done when cb function has more args than params of given test row
  ✅ calls [ 'test', 'only' ] with done when cb function has more args than params of given test row
  ✅ calls [ 'test', 'concurrent' ] with done when cb function has more args than params of given test row
  ✅ calls [ 'test', 'concurrent', 'only' ] with done when cb function has more args than params of given test row
  ✅ calls [ 'it' ] with done when cb function has more args than params of given test row
  ✅ calls [ 'fit' ] with done when cb function has more args than params of given test row
  ✅ calls [ 'it', 'only' ] with done when cb function has more args than params of given test row
  ✅ does not call [ 'describe' ] with done when test function has more args than params of given test row
  ✅ does not call [ 'fdescribe' ] with done when test function has more args than params of given test row
  ✅ does not call [ 'describe', 'only' ] with done when test function has more args than params of given test row
jest-each .xtest
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using sprintf format
  ✅ calls global with title with placeholder values correctly interpolated
jest-each .test.skip
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using sprintf format
  ✅ calls global with title with placeholder values correctly interpolated
jest-each .xit
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using sprintf format
  ✅ calls global with title with placeholder values correctly interpolated
jest-each .it.skip
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using sprintf format
  ✅ calls global with title with placeholder values correctly interpolated
jest-each .xdescribe
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using sprintf format
  ✅ calls global with title with placeholder values correctly interpolated
jest-each .describe.skip
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using sprintf format
  ✅ calls global with title with placeholder values correctly interpolated

 packages/jest-each/src/tests/index.test.ts

array .add
  ✅ returns the result of adding 0 to 0
  ✅ returns the result of adding 0 to 1
  ✅ returns the result of adding 1 to 1
concurrent .add
  ✅ returns the result of adding 0 to 0
  ✅ returns the result of adding 0 to 1
  ✅ returns the result of adding 1 to 1
template .add
  ✅ returns 0 when given 0 and 0
  ✅ returns 1 when given 0 and 1
  ✅ returns 2 when given 1 and 1
✅ throws an error when not called with the right number of arguments

 packages/jest-each/src/tests/template.test.ts

jest-each .test
  ✅ throws error when there are additional words in first column heading
  ✅ throws error when there are additional words in second column heading
  ✅ throws error when there are additional words in last column heading
  ✅ does not throw error when there is additional words in template after heading row
  ✅ does not throw error when there is only one column
  ✅ does not throw error when there is only one column with additional words in template after heading
  ✅ throws error when there are no arguments for given headings
  ✅ throws error when there are fewer arguments than headings when given one row
  ✅ throws error when there are fewer arguments than headings over multiple rows
  ✅ throws an error when called with an empty string
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
  ✅ calls global with title containing $key in multiple positions
  ✅ calls global with title containing $key.path
  ✅ calls global with title containing last seen object when $key.path is invalid
  ✅ calls global with cb function with object built from table headings and values
  ✅ calls global with given timeout
  ✅ formats primitive values using .toString()
jest-each .test.concurrent
  ✅ throws error when there are additional words in first column heading
  ✅ throws error when there are additional words in second column heading
  ✅ throws error when there are additional words in last column heading
  ✅ does not throw error when there is additional words in template after heading row
  ✅ does not throw error when there is only one column
  ✅ does not throw error when there is only one column with additional words in template after heading
  ✅ throws error when there are no arguments for given headings
  ✅ throws error when there are fewer arguments than headings when given one row
  ✅ throws error when there are fewer arguments than headings over multiple rows
  ✅ throws an error when called with an empty string
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
  ✅ calls global with title containing $key in multiple positions
  ✅ calls global with title containing $key.path
  ✅ calls global with title containing last seen object when $key.path is invalid
  ✅ calls global with cb function with object built from table headings and values
  ✅ calls global with given timeout
  ✅ formats primitive values using .toString()
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
jest-each .test.concurrent.only
  ✅ throws error when there are additional words in first column heading
  ✅ throws error when there are additional words in second column heading
  ✅ throws error when there are additional words in last column heading
  ✅ does not throw error when there is additional words in template after heading row
  ✅ does not throw error when there is only one column
  ✅ does not throw error when there is only one column with additional words in template after heading
  ✅ throws error when there are no arguments for given headings
  ✅ throws error when there are fewer arguments than headings when given one row
  ✅ throws error when there are fewer arguments than headings over multiple rows
  ✅ throws an error when called with an empty string
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
  ✅ calls global with title containing $key in multiple positions
  ✅ calls global with title containing $key.path
  ✅ calls global with title containing last seen object when $key.path is invalid
  ✅ calls global with cb function with object built from table headings and values
  ✅ calls global with given timeout
  ✅ formats primitive values using .toString()
jest-each .test.concurrent.skip
  ✅ throws error when there are additional words in first column heading
  ✅ throws error when there are additional words in second column heading
  ✅ throws error when there are additional words in last column heading
  ✅ does not throw error when there is additional words in template after heading row
  ✅ does not throw error when there is only one column
  ✅ does not throw error when there is only one column with additional words in template after heading
  ✅ throws error when there are no arguments for given headings
  ✅ throws error when there are fewer arguments than headings when given one row
  ✅ throws error when there are fewer arguments than headings over multiple rows
  ✅ throws an error when called with an empty string
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
  ✅ calls global with title containing $key in multiple positions
  ✅ calls global with title containing $key.path
  ✅ calls global with title containing last seen object when $key.path is invalid
  ✅ calls global with cb function with object built from table headings and values
  ✅ calls global with given timeout
  ✅ formats primitive values using .toString()
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
jest-each .test.only
  ✅ throws error when there are additional words in first column heading
  ✅ throws error when there are additional words in second column heading
  ✅ throws error when there are additional words in last column heading
  ✅ does not throw error when there is additional words in template after heading row
  ✅ does not throw error when there is only one column
  ✅ does not throw error when there is only one column with additional words in template after heading
  ✅ throws error when there are no arguments for given headings
  ✅ throws error when there are fewer arguments than headings when given one row
  ✅ throws error when there are fewer arguments than headings over multiple rows
  ✅ throws an error when called with an empty string
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
  ✅ calls global with title containing $key in multiple positions
  ✅ calls global with title containing $key.path
  ✅ calls global with title containing last seen object when $key.path is invalid
  ✅ calls global with cb function with object built from table headings and values
  ✅ calls global with given timeout
  ✅ formats primitive values using .toString()
jest-each .it
  ✅ throws error when there are additional words in first column heading
  ✅ throws error when there are additional words in second column heading
  ✅ throws error when there are additional words in last column heading
  ✅ does not throw error when there is additional words in template after heading row
  ✅ does not throw error when there is only one column
  ✅ does not throw error when there is only one column with additional words in template after heading
  ✅ throws error when there are no arguments for given headings
  ✅ throws error when there are fewer arguments than headings when given one row
  ✅ throws error when there are fewer arguments than headings over multiple rows
  ✅ throws an error when called with an empty string
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
  ✅ calls global with title containing $key in multiple positions
  ✅ calls global with title containing $key.path
  ✅ calls global with title containing last seen object when $key.path is invalid
  ✅ calls global with cb function with object built from table headings and values
  ✅ calls global with given timeout
  ✅ formats primitive values using .toString()
jest-each .fit
  ✅ throws error when there are additional words in first column heading
  ✅ throws error when there are additional words in second column heading
  ✅ throws error when there are additional words in last column heading
  ✅ does not throw error when there is additional words in template after heading row
  ✅ does not throw error when there is only one column
  ✅ does not throw error when there is only one column with additional words in template after heading
  ✅ throws error when there are no arguments for given headings
  ✅ throws error when there are fewer arguments than headings when given one row
  ✅ throws error when there are fewer arguments than headings over multiple rows
  ✅ throws an error when called with an empty string
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
  ✅ calls global with title containing $key in multiple positions
  ✅ calls global with title containing $key.path
  ✅ calls global with title containing last seen object when $key.path is invalid
  ✅ calls global with cb function with object built from table headings and values
  ✅ calls global with given timeout
  ✅ formats primitive values using .toString()
jest-each .it.only
  ✅ throws error when there are additional words in first column heading
  ✅ throws error when there are additional words in second column heading
  ✅ throws error when there are additional words in last column heading
  ✅ does not throw error when there is additional words in template after heading row
  ✅ does not throw error when there is only one column
  ✅ does not throw error when there is only one column with additional words in template after heading
  ✅ throws error when there are no arguments for given headings
  ✅ throws error when there are fewer arguments than headings when given one row
  ✅ throws error when there are fewer arguments than headings over multiple rows
  ✅ throws an error when called with an empty string
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
  ✅ calls global with title containing $key in multiple positions
  ✅ calls global with title containing $key.path
  ✅ calls global with title containing last seen object when $key.path is invalid
  ✅ calls global with cb function with object built from table headings and values
  ✅ calls global with given timeout
  ✅ formats primitive values using .toString()
jest-each .describe
  ✅ throws error when there are additional words in first column heading
  ✅ throws error when there are additional words in second column heading
  ✅ throws error when there are additional words in last column heading
  ✅ does not throw error when there is additional words in template after heading row
  ✅ does not throw error when there is only one column
  ✅ does not throw error when there is only one column with additional words in template after heading
  ✅ throws error when there are no arguments for given headings
  ✅ throws error when there are fewer arguments than headings when given one row
  ✅ throws error when there are fewer arguments than headings over multiple rows
  ✅ throws an error when called with an empty string
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
  ✅ calls global with title containing $key in multiple positions
  ✅ calls global with title containing $key.path
  ✅ calls global with title containing last seen object when $key.path is invalid
  ✅ calls global with cb function with object built from table headings and values
  ✅ calls global with given timeout
  ✅ formats primitive values using .toString()
jest-each .fdescribe
  ✅ throws error when there are additional words in first column heading
  ✅ throws error when there are additional words in second column heading
  ✅ throws error when there are additional words in last column heading
  ✅ does not throw error when there is additional words in template after heading row
  ✅ does not throw error when there is only one column
  ✅ does not throw error when there is only one column with additional words in template after heading
  ✅ throws error when there are no arguments for given headings
  ✅ throws error when there are fewer arguments than headings when given one row
  ✅ throws error when there are fewer arguments than headings over multiple rows
  ✅ throws an error when called with an empty string
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
  ✅ calls global with title containing $key in multiple positions
  ✅ calls global with title containing $key.path
  ✅ calls global with title containing last seen object when $key.path is invalid
  ✅ calls global with cb function with object built from table headings and values
  ✅ calls global with given timeout
  ✅ formats primitive values using .toString()
jest-each .describe.only
  ✅ throws error when there are additional words in first column heading
  ✅ throws error when there are additional words in second column heading
  ✅ throws error when there are additional words in last column heading
  ✅ does not throw error when there is additional words in template after heading row
  ✅ does not throw error when there is only one column
  ✅ does not throw error when there is only one column with additional words in template after heading
  ✅ throws error when there are no arguments for given headings
  ✅ throws error when there are fewer arguments than headings when given one row
  ✅ throws error when there are fewer arguments than headings over multiple rows
  ✅ throws an error when called with an empty string
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
  ✅ calls global with title containing $key in multiple positions
  ✅ calls global with title containing $key.path
  ✅ calls global with title containing last seen object when $key.path is invalid
  ✅ calls global with cb function with object built from table headings and values
  ✅ calls global with given timeout
  ✅ formats primitive values using .toString()
jest-each done callback
  ✅ calls [ 'test' ] with done when cb function has more args than params of given test row
  ✅ calls [ 'test', 'only' ] with done when cb function has more args than params of given test row
  ✅ calls [ 'test', 'concurrent', 'only' ] with done when cb function has more args than params of given test row
  ✅ calls [ 'it' ] with done when cb function has more args than params of given test row
  ✅ calls [ 'fit' ] with done when cb function has more args than params of given test row
  ✅ calls [ 'it', 'only' ] with done when cb function has more args than params of given test row
  ✅ does not call [ 'describe' ] with done when test function has more args than params of given test row
  ✅ does not call [ 'fdescribe' ] with done when test function has more args than params of given test row
  ✅ does not call [ 'describe', 'only' ] with done when test function has more args than params of given test row
jest-each .xtest
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
jest-each .test.skip
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
jest-each .xit
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
jest-each .it.skip
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
jest-each .xdescribe
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format
jest-each .describe.skip
  ✅ calls global with given title
  ✅ calls global with given title when multiple tests cases exist
  ✅ calls global with title containing param values when using $variable format

 packages/jest-environment-jsdom/src/tests/jsdom_environment.test.ts

JSDomEnvironment
  ✅ should configure setTimeout/setInterval to use the browser api
  ✅ has modern fake timers implementation

 packages/jest-environment-node/src/tests/node_environment.test.ts

NodeEnvironment
  ✅ uses a copy of the process object
  ✅ exposes process.on
  ✅ exposes global.global
  ✅ should configure setTimeout/setInterval to use the node api
  ✅ has modern fake timers implementation
  ✅ TextEncoder references the same global Uint8Array constructor

 packages/jest-fake-timers/src/tests/legacyFakeTimers.test.ts

FakeTimers construction
  ✅ installs setTimeout mock
  ✅ accepts to promisify setTimeout mock
  ✅ installs clearTimeout mock
  ✅ installs setInterval mock
  ✅ installs clearInterval mock
  ✅ mocks process.nextTick if it exists on global
  ✅ mocks setImmediate if it exists on global
  ✅ mocks clearImmediate if setImmediate is on global
FakeTimers runAllTicks
  ✅ runs all ticks, in order
  ✅ does nothing when no ticks have been scheduled
  ✅ only runs a scheduled callback once
  ✅ cancels a callback even from native nextTick
  ✅ cancels a callback even from native setImmediate
  ✅ doesnt run a tick callback if native nextTick already did
  ✅ doesnt run immediate if native setImmediate already did
  ✅ native doesnt run immediate if fake already did
  ✅ throws before allowing infinite recursion
FakeTimers runAllTimers
  ✅ runs all timers in order
  ✅ warns when trying to advance timers while real timers are used
  ✅ does nothing when no timers have been scheduled
  ✅ only runs a setTimeout callback once (ever)
  ✅ runs callbacks with arguments after the interval
  ✅ doesnt pass the callback to native setTimeout
  ✅ throws before allowing infinite recursion
  ✅ also clears ticks
FakeTimers advanceTimersByTime
  ✅ runs timers in order
  ✅ does nothing when no timers have been scheduled
  ✅ throws before allowing infinite recursion
FakeTimers advanceTimersToNextTimer
  ✅ runs timers in order
  ✅ run correct amount of steps
  ✅ setTimeout inside setTimeout
  ✅ does nothing when no timers have been scheduled
FakeTimers reset
  ✅ resets all pending setTimeouts
  ✅ resets all pending setIntervals
  ✅ resets all pending ticks callbacks & immediates
  ✅ resets current advanceTimersByTime time cursor
FakeTimers runOnlyPendingTimers
  ✅ runs all timers in order
  ✅ does not run timers that were cleared in another timer
FakeTimers runWithRealTimers
  ✅ executes callback with native timers
  ✅ resets mock timers after executing callback
  ✅ resets mock timer functions even if callback throws
FakeTimers useRealTimers
  ✅ resets native timer APIs
  ✅ resets native process.nextTick when present
  ✅ resets native setImmediate when present
FakeTimers useFakeTimers
  ✅ resets mock timer APIs
  ✅ resets mock process.nextTick when present
  ✅ resets mock setImmediate when present
FakeTimers getTimerCount
  ✅ returns the correct count
  ✅ includes immediates and ticks
  ✅ not includes cancelled immediates

 packages/jest-fake-timers/src/tests/modernFakeTimers.test.ts

FakeTimers construction
  ✅ installs setTimeout mock
  ✅ installs clearTimeout mock
  ✅ installs setInterval mock
  ✅ installs clearInterval mock
  ✅ mocks process.nextTick if it exists on global
  ✅ mocks setImmediate if it exists on global
  ✅ mocks clearImmediate if setImmediate is on global
FakeTimers runAllTicks
  ✅ runs all ticks, in order
  ✅ does nothing when no ticks have been scheduled
  ✅ only runs a scheduled callback once
  ✅ throws before allowing infinite recursion
FakeTimers runAllTimers
  ✅ runs all timers in order
  ✅ warns when trying to advance timers while real timers are used
  ✅ does nothing when no timers have been scheduled
  ✅ only runs a setTimeout callback once (ever)
  ✅ runs callbacks with arguments after the interval
  ✅ doesn't pass the callback to native setTimeout
  ✅ throws before allowing infinite recursion
  ✅ also clears ticks
FakeTimers advanceTimersByTime
  ✅ runs timers in order
  ✅ does nothing when no timers have been scheduled
FakeTimers advanceTimersToNextTimer
  ✅ runs timers in order
  ✅ run correct amount of steps
  ✅ setTimeout inside setTimeout
  ✅ does nothing when no timers have been scheduled
FakeTimers reset
  ✅ resets all pending setTimeouts
  ✅ resets all pending setIntervals
  ✅ resets all pending ticks callbacks
  ✅ resets current advanceTimersByTime time cursor
FakeTimers runOnlyPendingTimers
  ✅ runs all timers in order
  ✅ does not run timers that were cleared in another timer
FakeTimers useRealTimers
  ✅ resets native timer APIs
  ✅ resets native process.nextTick when present
  ✅ resets native setImmediate when present
FakeTimers useFakeTimers
  ✅ resets mock timer APIs
  ✅ resets mock process.nextTick when present
  ✅ resets mock setImmediate when present
FakeTimers getTimerCount
  ✅ returns the correct count
  ✅ includes immediates and ticks
  ✅ not includes cancelled immediates

 packages/jest-get-type/src/tests/getType.test.ts

.getType()
  ✅ null
  ✅ undefined
  ✅ object
  ✅ array
  ✅ number
  ✅ string
  ✅ function
  ✅ boolean
  ✅ symbol
  ✅ regexp
  ✅ map
  ✅ set
  ✅ date
  ✅ bigint

 packages/jest-get-type/src/tests/isPrimitive.test.ts

.isPrimitive()
  ✅ returns true when given primitive value of: null
  ✅ returns true when given primitive value of: undefined
  ✅ returns true when given primitive value of: 100
  ✅ returns true when given primitive value of: hello world
  ✅ returns true when given primitive value of: true
  ✅ returns true when given primitive value of: Symbol(a)
  ✅ returns true when given primitive value of: 0
  ✅ returns true when given primitive value of: NaN
  ✅ returns true when given primitive value of: Infinity
  ✅ returns true when given primitive value of: 1n
  ✅ returns false when given non primitive value of: {}
  ✅ returns false when given non primitive value of: []
  ✅ returns false when given non primitive value of: undefined
  ✅ returns false when given non primitive value of: {}
  ✅ returns false when given non primitive value of: {}
  ✅ returns false when given non primitive value of: {}
  ✅ returns false when given non primitive value of: "2021-01-24T19:22:19.272Z"
  ✅ returns false when given non primitive value of: {}

 packages/jest-globals/src/tests/index.ts

✅ throw when directly imported

 packages/jest-haste-map/src/tests/get_mock_name.test.js

getMockName
  ✅ extracts mock name from file path

 packages/jest-haste-map/src/tests/includes_dotfiles.test.ts

✅ watchman crawler and node crawler both include dotfiles

 packages/jest-haste-map/src/tests/index.test.js

HasteMap
  ✅ exports constants
  ✅ creates valid cache file paths
  ✅ creates different cache file paths for different roots
  ✅ creates different cache file paths for different dependency extractor cache keys
  ✅ creates different cache file paths for different hasteImplModulePath cache keys
  ✅ creates different cache file paths for different projects
  ✅ matches files against a pattern
  ✅ ignores files given a pattern
  ✅ ignores vcs directories without ignore pattern
  ✅ ignores vcs directories with ignore pattern regex
  ✅ warn on ignore pattern except for regex
  ✅ builds a haste map on a fresh cache
  ✅ does not crawl native files even if requested to do so
  ✅ retains all files if `retainAllFiles` is specified
  ✅ warns on duplicate mock files
  ✅ warns on duplicate module ids
  ✅ warns on duplicate module ids only once
  ✅ throws on duplicate module ids if "throwOnModuleCollision" is set to true
  ✅ splits up modules by platform
  ✅ does not access the file system on a warm cache with no changes
  ✅ only does minimal file system access when files change
  ✅ correctly handles file deletions
  ✅ correctly handles platform-specific file additions
  ✅ correctly handles platform-specific file deletions
  ✅ correctly handles platform-specific file renames
  ✅ discards the cache when configuration changes
  ✅ ignores files that do not exist
  ✅ distributes work across workers
  ✅ tries to crawl using node as a fallback
  ✅ tries to crawl using node as a fallback when promise fails once
  ✅ stops crawling when both crawlers fail
HasteMap builds a haste map on a fresh cache with SHA-1s
  ✅ uses watchman: false
  ✅ uses watchman: true
HasteMap duplicate modules
  ✅ recovers when a duplicate file is deleted
  ✅ recovers with the correct type when a duplicate file is deleted
  ✅ recovers when a duplicate module is renamed
HasteMap file system changes processing
  ✅ provides a new set of hasteHS and moduleMap
  ✅ handles several change events at once
  ✅ does not emit duplicate change events
  ✅ emits a change even if a file in node_modules has changed
  ✅ correctly tracks changes to both platform-specific versions of a single module name
HasteMap file system changes processing recovery from duplicate module IDs
  ✅ recovers when the oldest version of the duplicates is fixed
  ✅ recovers when the most recent duplicate is fixed
  ✅ ignore directories

 packages/jest-haste-map/src/tests/worker.test.js

worker
  ✅ parses JavaScript files and extracts module information
  ✅ accepts a custom dependency extractor
  ✅ delegates to hasteImplModulePath for getting the id
  ✅ parses package.json files as haste packages
  ✅ returns an error when a file cannot be accessed
  ✅ simply computes SHA-1s when requested (works well with binary data)
  ✅ avoids computing dependencies if not requested and Haste does not need it

 packages/jest-haste-map/src/crawlers/tests/node.test.js

node crawler
  ✅ crawls for files based on patterns
  ✅ updates only changed files
  ✅ returns removed files
  ✅ uses node fs APIs with incompatible find binary
  ✅ uses node fs APIs without find binary
  ✅ uses node fs APIs if "forceNodeFilesystemAPI" is set to true, regardless of platform
  ✅ completes with empty roots
  ✅ completes with fs.readdir throwing an error
node crawler readdir withFileTypes support
  ✅ calls lstat for directories and symlinks if readdir withFileTypes is not supported
  ✅ avoids calling lstat for directories and symlinks if readdir withFileTypes is supported

 packages/jest-haste-map/src/crawlers/tests/watchman.test.js

watchman watch
  ✅ returns a list of all files when there are no clocks
  ✅ updates file map and removedFiles when the clock is given
  ✅ resets the file map and tracks removedFiles when watchman is fresh
  ✅ properly resets the file map when only one watcher is reset
  ✅ does not add directory filters to query when watching a ROOT
  ✅ SHA-1 requested and available
  ✅ SHA-1 requested and NOT available
  ✅ source control query

 packages/jest-haste-map/src/lib/tests/dependencyExtractor.test.js

dependencyExtractor
  ✅ should not extract dependencies inside comments
  ✅ should not extract dependencies inside comments (windows line endings)
  ✅ should not extract dependencies inside comments (unicode line endings)
  ✅ should extract dependencies from `import` statements
  ✅ should extract dependencies from side-effect only `import` statements
  ✅ should not extract dependencies from `import type/typeof` statements
  ✅ should extract dependencies from `export` statements
  ✅ should extract dependencies from `export-from` statements
  ✅ should not extract dependencies from `export type/typeof` statements
  ✅ should extract dependencies from dynamic `import` calls
  ✅ should extract dependencies from `require` calls
  ✅ should extract dependencies from `jest.requireActual` calls
  ✅ should extract dependencies from `jest.requireMock` calls
  ✅ should extract dependencies from `jest.genMockFromModule` calls
  ✅ should extract dependencies from `jest.createMockFromModule` calls

 packages/jest-haste-map/src/lib/tests/fast_path.test.js

fastPath.relative
  ✅ should get relative paths inside the root
  ✅ should get relative paths outside the root
  ✅ should get relative paths outside the root when start with same word
fastPath.resolve
  ✅ should get the absolute path for paths inside the root
  ✅ should get the absolute path for paths outside the root

 packages/jest-haste-map/src/lib/tests/getPlatformExtension.test.js

getPlatformExtension
  ✅ should get platform ext

 packages/jest-haste-map/src/lib/tests/isRegExpSupported.test.js

isRegExpSupported
  ✅ should return true when passing valid regular expression
  ✅ should return false when passing an invalid regular expression

 packages/jest-haste-map/src/lib/tests/normalizePathSep.test.js

normalizePathSep
  ✅ does nothing on posix
  ✅ replace slashes on windows

 packages/jest-jasmine2/src/tests/concurrent.test.ts

concurrent
  ✅ should add 1 to number
  ✅ should add 1 to number
  ✅ should add 1 to number

 packages/jest-jasmine2/src/tests/expectationResultFactory.test.ts

expectationResultFactory
  ✅ returns the result if passed.
  ✅ returns the result if failed.
  ✅ returns the result if failed (with `message`).
  ✅ returns the result if failed (with `error`).
  ✅ returns the error name if the error message is empty
  ✅ returns the result if failed (with `error` as a string).
  ✅ returns the result if failed (with `error.stack` not as a string).

 packages/jest-jasmine2/src/tests/hooksError.test.ts

beforeEach hooks error throwing
  ✅ beforeEach throws an error when "String" is provided as a first argument to it
  ✅ beforeEach throws an error when 1 is provided as a first argument to it
  ✅ beforeEach throws an error when [] is provided as a first argument to it
  ✅ beforeEach throws an error when {} is provided as a first argument to it
  ✅ beforeEach throws an error when Symbol(hello) is provided as a first argument to it
  ✅ beforeEach throws an error when true is provided as a first argument to it
  ✅ beforeEach throws an error when null is provided as a first argument to it
  ✅ beforeEach throws an error when undefined is provided as a first argument to it
beforeAll hooks error throwing
  ✅ beforeAll throws an error when "String" is provided as a first argument to it
  ✅ beforeAll throws an error when 1 is provided as a first argument to it
  ✅ beforeAll throws an error when [] is provided as a first argument to it
  ✅ beforeAll throws an error when {} is provided as a first argument to it
  ✅ beforeAll throws an error when Symbol(hello) is provided as a first argument to it
  ✅ beforeAll throws an error when true is provided as a first argument to it
  ✅ beforeAll throws an error when null is provided as a first argument to it
  ✅ beforeAll throws an error when undefined is provided as a first argument to it
afterEach hooks error throwing
  ✅ afterEach throws an error when "String" is provided as a first argument to it
  ✅ afterEach throws an error when 1 is provided as a first argument to it
  ✅ afterEach throws an error when [] is provided as a first argument to it
  ✅ afterEach throws an error when {} is provided as a first argument to it
  ✅ afterEach throws an error when Symbol(hello) is provided as a first argument to it
  ✅ afterEach throws an error when true is provided as a first argument to it
  ✅ afterEach throws an error when null is provided as a first argument to it
  ✅ afterEach throws an error when undefined is provided as a first argument to it
afterAll hooks error throwing
  ✅ afterAll throws an error when "String" is provided as a first argument to it
  ✅ afterAll throws an error when 1 is provided as a first argument to it
  ✅ afterAll throws an error when [] is provided as a first argument to it
  ✅ afterAll throws an error when {} is provided as a first argument to it
  ✅ afterAll throws an error when Symbol(hello) is provided as a first argument to it
  ✅ afterAll throws an error when true is provided as a first argument to it
  ✅ afterAll throws an error when null is provided as a first argument to it
  ✅ afterAll throws an error when undefined is provided as a first argument to it

 packages/jest-jasmine2/src/tests/iterators.test.ts

iterators
  ✅ works for arrays
  ✅ works for custom iterables
  ✅ works for Sets
  ✅ works for Maps

 packages/jest-jasmine2/src/tests/itTestError.test.ts

test/it error throwing
  ✅ it throws error with missing callback function
  ✅ it throws an error when first argument isn't a string
  ✅ it throws an error when callback function is not a function
  ✅ test throws error with missing callback function
  ✅ test throws an error when first argument isn't a string
  ✅ test throws an error when callback function is not a function

 packages/jest-jasmine2/src/tests/itToTestAlias.test.ts

✅ global.test

 packages/jest-jasmine2/src/tests/pTimeout.test.ts

pTimeout
  ✅ calls `clearTimeout` and resolves when `promise` resolves.
  ✅ calls `clearTimeout` and rejects when `promise` rejects.
  ✅ calls `onTimeout` on timeout.

 packages/jest-jasmine2/src/tests/queueRunner.test.ts

queueRunner
  ✅ runs every function in the queue.
  ✅ exposes `fail` to `next`.
  ✅ passes errors to `onException`.
  ✅ passes an error to `onException` on timeout.
  ✅ calls `fail` with arguments
  ✅ calls `fail` when done(error) is invoked

 packages/jest-jasmine2/src/tests/reporter.test.ts

Jasmine2Reporter
  ✅ reports nested suites

 packages/jest-jasmine2/src/tests/Suite.test.ts

Suite
  ✅ doesn't throw on addExpectationResult when there are no children

 packages/jest-jasmine2/src/tests/todoError.test.ts

test/it.todo error throwing
  ✅ it throws error when given no arguments
  ✅ it throws error when given more than one argument
  ✅ it throws error when given none string description

 packages/jest-leak-detector/src/tests/index.test.ts

✅ complains if the value is a primitive
✅ does not show the GC if hidden
✅ does not hide the GC if visible
✅ correctly checks simple leaks
✅ tests different objects
✅ correctly checks more complex leaks

 packages/jest-matcher-utils/src/tests/deepCyclicCopyReplaceable.test.ts

✅ returns the same value for primitive or function values
✅ convert accessor descriptor into value descriptor
✅ shuold not skips non-enumerables
✅ copies symbols
✅ copies arrays as array objects
✅ handles cyclic dependencies
✅ Copy Map
✅ Copy cyclic Map
✅ return same value for built-in object type except array, map and object
✅ should copy object symbol key property
✅ should set writable, configurable to true

 packages/jest-matcher-utils/src/tests/deepCyclicCopyReplaceableDom.test.ts

✅ should copy dom element
✅ should copy complex element

 packages/jest-matcher-utils/src/tests/index.test.ts

stringify()
  ✅ []
  ✅ {}
  ✅ 1
  ✅ 0
  ✅ 1.5
  ✅ null
  ✅ undefined
  ✅ "abc"
  ✅ Symbol(abc)
  ✅ NaN
  ✅ Infinity
  ✅ -Infinity
  ✅ /ab\.c/gi
  ✅ 1n
  ✅ 0n
  ✅ circular references
  ✅ toJSON error
  ✅ toJSON errors when comparing two objects
  ✅ reduces maxDepth if stringifying very large objects
ensureNumbers()
  ✅ dont throw error when variables are numbers
  ✅ throws error when expected is not a number (backward compatibility)
  ✅ throws error when received is not a number (backward compatibility)
ensureNumbers() with options
  ✅ promise empty isNot false received
  ✅ promise empty isNot true expected
  ✅ promise rejects isNot false expected
  ✅ promise rejects isNot true received
  ✅ promise resolves isNot false received
  ✅ promise resolves isNot true expected
ensureNoExpected()
  ✅ dont throw error when undefined
  ✅ throws error when expected is not undefined with matcherName
  ✅ throws error when expected is not undefined with matcherName and options
diff
  ✅ forwards to jest-diff
  ✅ two booleans
  ✅ two numbers
  ✅ two bigints
pluralize()
  ✅ one
  ✅ two
  ✅ 20
getLabelPrinter
  ✅ 0 args
  ✅ 1 empty string
  ✅ 1 non-empty string
  ✅ 2 equal lengths
  ✅ 2 unequal lengths
  ✅ returns incorrect padding if inconsistent arg is shorter
  ✅ throws if inconsistent arg is longer
matcherHint
  ✅ expectedColor
  ✅ receivedColor
  ✅ secondArgumentColor

 packages/jest-matcher-utils/src/tests/printDiffOrStringify.test.ts

printDiffOrStringify
  ✅ expected is empty and received is single line
  ✅ expected is multi line and received is empty
  ✅ expected and received are single line with multiple changes
  ✅ expected and received are multi line with trailing spaces
  ✅ has no common after clean up chaff multiline
  ✅ has no common after clean up chaff one-line
  ✅ object contain readonly symbol key object
printDiffOrStringify MAX_DIFF_STRING_LENGTH
  ✅ both are less
  ✅ expected is more
  ✅ received is more
printDiffOrStringify asymmetricMatcher
  ✅ minimal test
  ✅ jest asymmetricMatcher
  ✅ custom asymmetricMatcher
  ✅ nested object
  ✅ array
  ✅ object in array
  ✅ map
  ✅ circular object
  ✅ transitive circular
  ✅ circular array
  ✅ circular map

 packages/jest-matcher-utils/src/tests/Replaceable.test.ts

Replaceable constructor
  ✅ init with object
  ✅ init with array
  ✅ init with Map
  ✅ init with other type should throw error
Replaceable get
  ✅ get object item
  ✅ get array item
  ✅ get Map item
Replaceable set
  ✅ set object item
  ✅ set array item
  ✅ set Map item
Replaceable forEach
  ✅ object forEach
  ✅ array forEach
  ✅ map forEach
  ✅ forEach should ignore nonenumerable property
Replaceable isReplaceable
  ✅ should return true if two object types equal and support
  ✅ should return false if two object types not equal
  ✅ should return false if object types not support

 packages/jest-message-util/src/tests/messages.test.ts

✅ should exclude jasmine from stack trace for Unix paths.
✅ .formatExecError()
✅ formatStackTrace should strip node internals
✅ should not exclude vendor from stack trace
✅ retains message in babel code frame error
✅ codeframe
✅ no codeframe
✅ no stack
formatStackTrace
  ✅ prints code frame and stacktrace
  ✅ does not print code frame when noCodeFrame = true
  ✅ does not print codeframe when noStackTrace = true

 packages/jest-mock/src/tests/index.test.ts

moduleMocker getMetadata
  ✅ returns the function `name` property
  ✅ mocks constant values
  ✅ does not retrieve metadata for arrays
  ✅ does not retrieve metadata for undefined
  ✅ does not retrieve metadata for null
  ✅ retrieves metadata for ES6 classes
  ✅ retrieves synchronous function metadata
  ✅ retrieves asynchronous function metadata
  ✅ retrieves metadata for object literals and it's members
  ✅ retrieves Date object metadata
moduleMocker generateFromMetadata
  ✅ forwards the function name property
  ✅ fixes illegal function name properties
  ✅ special cases the mockConstructor name
  ✅ wont interfere with previous mocks on a shared prototype
  ✅ does not mock non-enumerable getters
  ✅ mocks getters of ES modules
  ✅ mocks ES2015 non-enumerable methods
  ✅ mocks ES2015 non-enumerable static properties and methods
  ✅ mocks methods in all the prototype chain (null prototype)
  ✅ does not mock methods from Object.prototype
  ✅ does not mock methods from Object.prototype (in mock context)
  ✅ does not mock methods from Function.prototype
  ✅ does not mock methods from Function.prototype (in mock context)
  ✅ does not mock methods from RegExp.prototype
  ✅ does not mock methods from RegExp.prototype (in mock context)
  ✅ mocks methods that are bound multiple times
  ✅ mocks methods that are bound after mocking
  ✅ mocks regexp instances
  ✅ mocks functions with numeric names
  ✅ mocks the method in the passed object itself
  ✅ should delete previously inexistent methods when restoring
  ✅ supports mock value returning undefined
  ✅ supports mock value once returning undefined
  ✅ mockReturnValueOnce mocks value just once
  ✅ supports mocking resolvable async functions
  ✅ supports mocking resolvable async functions only once
  ✅ supports mocking rejectable async functions
  ✅ supports mocking rejectable async functions only once
  ✅ tracks thrown errors without interfering with other tracking
  ✅ a call that throws undefined is tracked properly
  ✅ results of recursive calls are tracked properly
  ✅ test results of recursive calls from within the recursive call
  ✅ call mockClear inside recursive mock
moduleMocker generateFromMetadata mocked functions
  ✅ tracks calls to mocks
  ✅ tracks instances made by mocks
  ✅ supports clearing mock calls
  ✅ supports clearing mocks
  ✅ supports clearing all mocks
  ✅ supports resetting mock return values
  ✅ supports resetting single use mock return values
  ✅ supports resetting mock implementations
  ✅ supports resetting single use mock implementations
  ✅ supports resetting all mocks
  ✅ maintains function arity
moduleMocker generateFromMetadata return values
  ✅ tracks return values
  ✅ tracks mocked return values
  ✅ supports resetting return values
moduleMocker generateFromMetadata invocationCallOrder
  ✅ tracks invocationCallOrder made by mocks
  ✅ supports clearing mock invocationCallOrder
  ✅ supports clearing all mocks invocationCallOrder
  ✅ handles a property called `prototype`
moduleMocker getMockImplementation
  ✅ should mock calls to a mock function
moduleMocker mockImplementationOnce
  ✅ should mock constructor
  ✅ should mock single call to a mock function
  ✅ should fallback to default mock function when no specific mock is available
moduleMocker
  ✅ mockReturnValue does not override mockImplementationOnce
  ✅ mockImplementation resets the mock
  ✅ should recognize a mocked function
  ✅ default mockName is jest.fn()
  ✅ mockName sets the mock name
  ✅ mockName gets reset by mockReset
  ✅ mockName gets reset by mockRestore
  ✅ mockName is not reset by mockClear
moduleMocker spyOn
  ✅ should work
  ✅ should throw on invalid input
  ✅ supports restoring all spies
  ✅ should work with getters
moduleMocker spyOnProperty
  ✅ should work - getter
  ✅ should work - setter
  ✅ should throw on invalid input
  ✅ supports restoring all spies
  ✅ should work with getters on the prototype chain
  ✅ should work with setters on the prototype chain
  ✅ supports restoring all spies on the prototype chain

 packages/jest-regex-util/src/tests/index.test.ts

replacePathSepForRegex() posix
  ✅ should return the path
replacePathSepForRegex() win32
  ✅ should replace POSIX path separators
  ✅ should escape Windows path separators
  ✅ should not escape an escaped dot
  ✅ should not escape an escaped regexp symbol
  ✅ should escape Windows path separators inside groups
  ✅ should escape Windows path separator at the beginning
  ✅ should not escape several already escaped path separators

 packages/jest-repl/src/tests/jest_repl.test.js

Repl cli
  ✅ runs without errors

 packages/jest-repl/src/tests/runtime_cli.test.js

Runtime CLI
  ✅ fails with no path
  ✅ displays script output
  ✅ always disables automocking
  ✅ throws script errors

 packages/jest-reporters/src/tests/CoverageReporter.test.js

onRunComplete
  ✅ getLastError() returns an error when threshold is not met for global
  ✅ getLastError() returns an error when threshold is not met for file
  ✅ getLastError() returns `undefined` when threshold is met
  ✅ getLastError() returns an error when threshold is not met for non-covered file
  ✅ getLastError() returns an error when threshold is not met for directory
  ✅ getLastError() returns `undefined` when threshold is met for directory
  ✅ getLastError() returns an error when there is no coverage data for a threshold
  ✅ getLastError() returns 'undefined' when global threshold group
   is empty because PATH and GLOB threshold groups have matched all the
    files in the coverage data.
  ✅ getLastError() returns 'undefined' when file and directory path
  threshold groups overlap
  ✅ that if globs or paths are specified alongside global, coverage
  data for matching paths will be subtracted from overall coverage
  and thresholds will be applied independently
  ✅ that files are matched by all matching threshold groups
  ✅ that it passes custom options when creating reporters

 packages/jest-reporters/src/tests/CoverageWorker.test.js

✅ resolves to the result of generateEmptyCoverage upon success
✅ throws errors on invalid JavaScript

 packages/jest-reporters/src/tests/DefaultReporter.test.js

✅ normal output, everything goes to stdout
✅ when using stderr as output, no stdout call is made

 packages/jest-reporters/src/tests/generateEmptyCoverage.test.js

generateEmptyCoverage
  ✅ generates an empty coverage object for a file without running it
  ✅ generates a null coverage result when using /* istanbul ignore file */
  ✅ generates a null coverage result when collectCoverage global config is false

 packages/jest-reporters/src/tests/getResultHeader.test.js

✅ should call `terminal-link` correctly
✅ should render the terminal link
✅ should display test time for slow test
✅ should not display test time for fast test

 packages/jest-reporters/src/tests/getSnapshotStatus.test.js

✅ Retrieves the snapshot status
✅ Shows no snapshot updates if all snapshots matched
✅ Retrieves the snapshot status after a snapshot update

 packages/jest-reporters/src/tests/getSnapshotSummary.test.js

✅ creates a snapshot summary
✅ creates a snapshot summary after an update
✅ creates a snapshot summary with multiple snapshot being written/updated
✅ returns nothing if there are no updates

 packages/jest-reporters/src/tests/getWatermarks.test.ts

getWatermarks
  ✅ that watermarks use thresholds as upper target
  ✅ that watermarks are created always created

 packages/jest-reporters/src/tests/NotifyReporter.test.ts

✅ test always
✅ test success
✅ test change
✅ test success-change
✅ test failure-change
✅ test always with rootDir
✅ test success with rootDir
✅ test change with rootDir
✅ test success-change with rootDir
✅ test failure-change with rootDir
✅ test always with moduleName
✅ test success with moduleName
✅ test change with moduleName
✅ test success-change with moduleName
✅ test failure-change with moduleName
node-notifier is an optional dependency
  ✅ without node-notifier uses mock function that throws an error
  ✅ throws the error when require throws an unexpected error
  ✅ uses node-notifier when it is available

 packages/jest-reporters/src/tests/SummaryReporter.test.js

✅ snapshots needs update with npm test
✅ snapshots needs update with yarn test
✅ snapshots all have results (no update)
✅ snapshots all have results (after update)

 packages/jest-reporters/src/tests/utils.test.ts

wrapAnsiString()
  ✅ wraps a long string containing ansi chars
  ✅ returns the string unaltered if given a terminal width of zero
trimAndFormatPath()
  ✅ trims dirname
  ✅ trims dirname (longer line width)
  ✅ trims dirname and basename
  ✅ does not trim anything
  ✅ split at the path.sep index
printDisplayName
  ✅ should default displayName color to white when displayName is a string
  ✅ should default displayName color to white when color is not a valid value
  ✅ should correctly print the displayName when color and name are valid values

 packages/jest-reporters/src/tests/VerboseReporter.test.js

groupTestsBySuites
  ✅ should handle empty results
  ✅ should group A1 in A
  ✅ should group A1 in A; B1 in B
  ✅ should group A1, A2 in A
  ✅ should group A1, A2 in A; B1, B2 in B
  ✅ should group AB1 in AB
  ✅ should group AB1, AB2 in AB
  ✅ should group A1 in A; AB1 in AB
  ✅ should group AB1 in AB; A1 in A
  ✅ should group AB1 in AB; CD1 in CD
  ✅ should group ABC1 in ABC; BC1 in BC; D1 in D; A1 in A

 packages/jest-resolve-dependencies/src/tests/dependency_resolver.test.ts

✅ resolves no dependencies for non-existent path
✅ resolves dependencies for existing path
✅ includes the mocks of dependencies as dependencies
✅ resolves dependencies for scoped packages
✅ resolves no inverse dependencies for empty paths set
✅ resolves no inverse dependencies for set of non-existent paths
✅ resolves inverse dependencies for existing path
✅ resolves inverse dependencies of mock
✅ resolves inverse dependencies from available snapshot
✅ resolves dependencies correctly when dependency resolution fails
✅ resolves dependencies correctly when mock dependency resolution fails

 packages/jest-resolve/src/tests/isBuiltinModule.test.ts

isBuiltinModule
  ✅ should return true for the `path` module
  ✅ should return false for the `chalk` module
  ✅ should return true for the `_http_common` module
  ✅ should return false for any internal node builtins

 packages/jest-resolve/src/tests/resolve.test.ts

isCoreModule
  ✅ returns false if `hasCoreModules` is false.
  ✅ returns true if `hasCoreModules` is true and `moduleName` is a core module.
  ✅ returns false if `hasCoreModules` is true and `moduleName` is not a core module.
  ✅ returns false if `hasCoreModules` is true and `moduleNameMapper` alias a module same name with core module
findNodeModule
  ✅ is possible to override the default resolver
  ✅ passes packageFilter to the resolve module when using the default resolver
resolveModule
  ✅ is possible to resolve node modules
  ✅ is possible to resolve node modules with custom extensions
  ✅ is possible to resolve node modules with custom extensions and platforms
  ✅ is possible to resolve node modules by resolving their realpath
  ✅ is possible to specify custom resolve paths
  ✅ does not confuse directories with files
getMockModule
  ✅ is possible to use custom resolver to resolve deps inside mock modules with moduleNameMapper
nodeModulesPaths
  ✅ provides custom module paths after node_modules
Resolver.getModulePaths() -> nodeModulesPaths()
  ✅ can resolve node modules relative to absolute paths in "moduleDirectories" on Windows platforms
  ✅ can resolve node modules relative to absolute paths in "moduleDirectories" on Posix platforms

 packages/jest-runner/src/tests/testRunner.test.ts

✅ injects the serializable module map into each worker in watch mode
✅ assign process.env.JEST_WORKER_ID = 1 when in runInBand mode

 packages/jest-runtime/src/tests/instrumentation.test.ts

✅ instruments files

 packages/jest-runtime/src/tests/runtime_create_mock_from_module.test.js

Runtime createMockFromModule
  ✅ does not cause side effects in the rest of the module system when generating a mock
  ✅ resolves mapped modules correctly
Runtime
  ✅ creates mock objects in the right environment

 packages/jest-runtime/src/tests/runtime_environment.test.js

Runtime requireModule
  ✅ emulates a node stack trace during module load
  ✅ emulates a node stack trace during function execution

 packages/jest-runtime/src/tests/runtime_internal_module.test.js

Runtime internalModule
  ✅ loads modules and applies transforms
  ✅ loads internal modules without applying transforms
  ✅ loads JSON modules and applies transforms
  ✅ loads internal JSON modules without applying transforms

 packages/jest-runtime/src/tests/runtime_jest_fn.js

Runtime jest.fn
  ✅ creates mock functions
  ✅ creates mock functions with mock implementations
Runtime jest.isMockFunction
  ✅ recognizes a mocked function
Runtime jest.clearAllMocks
  ✅ clears all mocks

 packages/jest-runtime/src/tests/runtime_jest_spy_on.test.js

Runtime jest.spyOn
  ✅ calls the original function
Runtime jest.spyOnProperty
  ✅ calls the original function

 packages/jest-runtime/src/tests/runtime_mock.test.js

Runtime jest.mock
  ✅ uses explicitly set mocks instead of automocking
  ✅ sets virtual mock for non-existing module required from same directory
  ✅ sets virtual mock for non-existing module required from different directory
Runtime jest.setMock
  ✅ uses explicitly set mocks instead of automocking

 packages/jest-runtime/src/tests/runtime_module_directories.test.js

Runtime
  ✅ uses configured moduleDirectories
  ✅ resolves packages
  ✅ finds closest module from moduleDirectories
  ✅ only checks the configured directories

 packages/jest-runtime/src/tests/runtime_node_path.test.js

Runtime
  ✅ uses NODE_PATH to find modules
  ✅ uses modulePaths to find modules
  ✅ finds modules in NODE_PATH containing multiple paths
  ✅ does not find modules if NODE_PATH is relative

 packages/jest-runtime/src/tests/runtime_require_actual.test.js

Runtime requireActual
  ✅ requires node module when manual mock exists
  ✅ requireActual with moduleNameMapper

 packages/jest-runtime/src/tests/runtime_require_cache.test.js

Runtime require.cache
  ✅ require.cache returns loaded module list as native Nodejs require does
  ✅ require.cache is tolerant readonly

 packages/jest-runtime/src/tests/runtime_require_mock.test.js

Runtime requireMock
  ✅ uses manual mocks before attempting to automock
  ✅ can resolve modules that are only referenced from mocks
  ✅ stores and re-uses manual mock exports
  ✅ automocks haste modules without a manual mock
  ✅ automocks relative-path modules without a file extension
  ✅ automocks relative-path modules with a file extension
  ✅ just falls back when loading a native module
  ✅ stores and re-uses automocked haste exports
  ✅ stores and re-uses automocked relative-path modules
  ✅ multiple node core modules returns correct module
  ✅ throws on non-existent haste modules
  ✅ uses manual mocks when using a custom resolver
  ✅ provides `require.main` in mock

 packages/jest-runtime/src/tests/runtime_require_module_no_ext.test.js

Runtime requireModule with no extension
  ✅ throws error pointing out file with extension

 packages/jest-runtime/src/tests/runtime_require_module_or_mock_transitive_deps.test.js

transitive dependencies
  ✅ mocks a manually mocked and mapped module
  ✅ unmocks transitive dependencies in node_modules by default
  ✅ unmocks transitive dependencies in node_modules when using unmock
  ✅ unmocks transitive dependencies in node_modules by default when using both patterns and unmock
  ✅ mocks deep dependencies when using unmock
  ✅ does not mock deep dependencies when using deepUnmock

 packages/jest-runtime/src/tests/runtime_require_module_or_mock.test.js

✅ mocks modules by default when using automocking
✅ doesn't mock modules when explicitly unmocked when using automocking
✅ doesn't mock modules when explicitly unmocked via a different name
✅ doesn't mock modules when disableAutomock() has been called
✅ uses manual mock when automocking on and mock is available
✅ does not use manual mock when automocking is off and a real module is available
✅ resolves mapped module names and unmocks them by default
✅ automocking is disabled by default
✅ unmocks modules in config.unmockedModulePathPatterns for tests with automock enabled when automock is false
✅ unmocks virtual mocks after they have been mocked previously
resetModules
  ✅ resets all the modules
isolateModules
  ✅ keeps it's registry isolated from global one
  ✅ resets all modules after the block
  ✅ resets module after failing
  ✅ cannot nest isolateModules blocks
  ✅ can call resetModules within a isolateModules block
isolateModules can use isolateModules from a beforeEach block
  ✅ can use the required module from beforeEach and re-require it

 packages/jest-runtime/src/tests/runtime_require_module.test.js

Runtime requireModule
  ✅ finds haste modules
  ✅ provides `module` to modules
  ✅ provides `module.parent` to modules
  ✅ `module.parent` should be undefined for entrypoints
  ✅ resolve module.parent.require correctly
  ✅ resolve module.parent.filename correctly
  ✅ provides `module.loaded` to modules
  ✅ provides `module.filename` to modules
  ✅ provides `module.paths` to modules
  ✅ provides `require.main` to modules
  ✅ throws on non-existent haste modules
  ✅ finds relative-path modules without file extension
  ✅ finds relative-path modules with file extension
  ✅ throws on non-existent relative-path modules
  ✅ finds node core built-in modules
  ✅ finds and loads JSON files without file extension
  ✅ finds and loads JSON files with file extension
  ✅ requires a JSON file twice successfully
  ✅ provides manual mock when real module doesnt exist
  ✅ doesn't override real modules with manual mocks when explicitly unmocked
  ✅ resolves haste packages properly
  ✅ resolves platform extensions based on the default platform
  ✅ finds modules encoded in UTF-8 *with BOM*
  ✅ finds and loads JSON files encoded in UTF-8 *with BOM*
  ✅ should export a constructable Module class
  ✅ caches Module correctly
Runtime requireModule on node >=12.12.0
  ✅ overrides module.createRequire

 packages/jest-runtime/src/tests/runtime_require_resolve.test.ts

Runtime require.resolve
  ✅ resolves a module path
  ✅ resolves a module path with moduleNameMapper
Runtime require.resolve with the jest-resolve-outside-vm-option
  ✅ forwards to the real Node require in an internal context
  ✅ ignores the option in an external context
  ✅ does not understand a self-constructed outsideJestVmPath in an external context

 packages/jest-runtime/src/tests/runtime_wrap.js

Runtime wrapCodeInModuleWrapper
  ✅ generates the correct args for the module wrapper
  ✅ injects "extra globals"

 packages/jest-runtime/src/tests/Runtime-sourceMaps.test.js

Runtime requireModule
  ✅ installs source maps if available

 packages/jest-runtime/src/tests/Runtime-statics.test.js

Runtime statics
  ✅ Runtime.createHasteMap passes correct ignore files to HasteMap
  ✅ Runtime.createHasteMap passes correct ignore files to HasteMap in watch mode

 packages/jest-serializer/src/tests/index.test.ts

Using V8 implementation
  ✅ throws the error with an invalid serialization
Using V8 implementation Object 0
  ✅ serializes/deserializes in memory
  ✅ serializes/deserializes in disk
Using V8 implementation Object 1
  ✅ serializes/deserializes in memory
  ✅ serializes/deserializes in disk
Using V8 implementation Object 2
  ✅ serializes/deserializes in memory
  ✅ serializes/deserializes in disk
Using V8 implementation Object 3
  ✅ serializes/deserializes in memory
  ✅ serializes/deserializes in disk
Using V8 implementation Object 4
  ✅ serializes/deserializes in memory
  ✅ serializes/deserializes in disk
Using V8 implementation Object 5
  ✅ serializes/deserializes in memory
  ✅ serializes/deserializes in disk
Using V8 implementation Object 6
  ✅ serializes/deserializes in memory
  ✅ serializes/deserializes in disk
Using V8 implementation Object 7
  ✅ serializes/deserializes in memory
  ✅ serializes/deserializes in disk

 packages/jest-snapshot/src/tests/dedentLines.test.ts

dedentLines non-null
  ✅ no lines
  ✅ one line empty string
  ✅ one line empty object
  ✅ one line self-closing element
  ✅ object value empty string
  ✅ object value string includes double-quote marks
  ✅ markup with props and text
  ✅ markup with components as props
dedentLines null
  ✅ object key multi-line
  ✅ object value multi-line
  ✅ object key and value multi-line
  ✅ markup prop multi-line
  ✅ markup prop component with multi-line text
  ✅ markup text multi-line
  ✅ markup text multiple lines
  ✅ markup unclosed self-closing start tag
  ✅ markup unclosed because no end tag

 packages/jest-snapshot/src/tests/InlineSnapshots.test.ts

✅ saveInlineSnapshots() replaces empty function call with a template literal
✅ saveInlineSnapshots() without prettier leaves formatting outside of snapshots alone
✅ saveInlineSnapshots() can handle typescript without prettier
✅ saveInlineSnapshots() can handle tsx without prettier
✅ saveInlineSnapshots() can handle flow and jsx without prettier
✅ saveInlineSnapshots() can use prettier to fix formatting for whole file
✅ saveInlineSnapshots() replaces existing template literal - babel parser
✅ saveInlineSnapshots() replaces existing template literal - flow parser
✅ saveInlineSnapshots() replaces existing template literal - typescript parser
✅ saveInlineSnapshots() replaces existing template literal with property matchers
✅ saveInlineSnapshots() creates template literal with property matchers
✅ saveInlineSnapshots() creates template literal with property matchers
✅ saveInlineSnapshots() throws if frame does not match
✅ saveInlineSnapshots() throws if multiple calls to to the same location
✅ saveInlineSnapshots() uses escaped backticks
✅ saveInlineSnapshots() works with non-literals in expect call
✅ saveInlineSnapshots() indents multi-line snapshots with spaces
✅ saveInlineSnapshots() does not re-indent error snapshots
✅ saveInlineSnapshots() does not re-indent already indented snapshots
✅ saveInlineSnapshots() indents multi-line snapshots with tabs
✅ saveInlineSnapshots() indents snapshots after prettier reformats
✅ saveInlineSnapshots() does not indent empty lines

 packages/jest-snapshot/src/tests/matcher.test.ts

✅ matcher returns matcher name, expected and actual values

 packages/jest-snapshot/src/tests/mockSerializer.test.ts

✅ mock with 0 calls and default name
✅ mock with 2 calls, 1 return, 1 throw
✅ mock with 0 calls and default name in React element
✅ mock with 0 calls and non-default name
✅ mock with 1 calls and non-default name via new in object
✅ mock with 1 calls in React element
✅ mock with 2 calls
✅ indent option
✅ min option
✅ maxDepth option

 packages/jest-snapshot/src/tests/printSnapshot.test.ts

chalk
  ✅ level 0
  ✅ level 1
  ✅ level 2
  ✅ level 3
matcher error toMatchInlineSnapshot
  ✅ Expected properties must be an object (non-null) without snapshot
  ✅ Expected properties must be an object (null) with snapshot
  ✅ Inline snapshot must be a string
  ✅ Snapshot matchers cannot be used with not
matcher error toMatchSnapshot
  ✅ Expected properties must be an object (non-null)
  ✅ Expected properties must be an object (null) with hint
  ✅ Expected properties must be an object (null) without hint
  ✅ Snapshot state must be initialized
matcher error toMatchSnapshot received value must be an object
  ✅ (non-null)
  ✅ (null)
matcher error toThrowErrorMatchingInlineSnapshot
  ✅ Inline snapshot must be a string
  ✅ Snapshot state must be initialized
matcher error toThrowErrorMatchingSnapshot
  ✅ Received value must be a function
  ✅ Snapshot matchers cannot be used with not
other error toThrowErrorMatchingSnapshot
  ✅ Received function did not throw
pass false toMatchInlineSnapshot with properties equals false
  ✅ with snapshot
  ✅ without snapshot
pass false toMatchInlineSnapshot with properties
  ✅ equals true
pass false toMatchSnapshot
  ✅ New snapshot was not written (multi line)
  ✅ New snapshot was not written (single line)
pass false toMatchSnapshot with properties equals false
  ✅ isLineDiffable false
  ✅ isLineDiffable true
pass false toMatchSnapshot with properties
  ✅ equals true
pass false toThrowErrorMatchingInlineSnapshot
  ✅ with snapshot
pass true toMatchSnapshot
  ✅ without properties
printPropertiesAndReceived
  ✅ omit missing properties
printSnapshotAndReceived backtick
  ✅ single line expected and received
printSnapshotAndReceived empty string
  ✅ expected and received single line
  ✅ received and expected multi line
printSnapshotAndReceived escape
  ✅ double quote marks in string
  ✅ backslash in multi line string
  ✅ backslash in single line string
  ✅ regexp
printSnapshotAndReceived expand
  ✅ false
  ✅ true
printSnapshotAndReceived
  ✅ fallback to line diff
  ✅ multi line small change in one line and other is unchanged
  ✅ multi line small changes
  ✅ single line large changes
printSnapshotAndReceived has no common after clean up chaff
  ✅ array
  ✅ string single line
printSnapshotAndReceived MAX_DIFF_STRING_LENGTH unquoted
  ✅ both are less
  ✅ expected is more
  ✅ received is more
printSnapshotAndReceived MAX_DIFF_STRING_LENGTH quoted
  ✅ both are less
  ✅ expected is more
  ✅ received is more
printSnapshotAndReceived isLineDiffable false
  ✅ asymmetric matcher
  ✅ boolean
  ✅ date
  ✅ error
  ✅ function
  ✅ number
printSnapshotAndReceived isLineDiffable true
  ✅ array
  ✅ object
  ✅ single line expected and received
  ✅ single line expected and multi line received
printSnapshotAndReceived ignore indentation
  ✅ markup delete
  ✅ markup fall back
  ✅ markup insert
printSnapshotAndReceived ignore indentation object
  ✅ delete
  ✅ insert
printSnapshotAndReceived without serialize
  ✅ backtick single line expected and received
  ✅ backtick single line expected and multi line received
  ✅ has no common after clean up chaff multi line
  ✅ has no common after clean up chaff single line
  ✅ prettier/pull/5590

 packages/jest-snapshot/src/tests/SnapshotResolver.test.ts

defaults
  ✅ returns cached object if called multiple times
  ✅ resolveSnapshotPath()
  ✅ resolveTestPath()
custom resolver in project config
  ✅ returns cached object if called multiple times
  ✅ resolveSnapshotPath()
  ✅ resolveTestPath()
malformed custom resolver in project config
  ✅ missing resolveSnapshotPath throws
  ✅ missing resolveTestPath throws
  ✅ missing testPathForConsistencyCheck throws
  ✅ inconsistent functions throws

 packages/jest-snapshot/src/tests/throwMatcher.test.ts

✅ throw matcher can take func
throw matcher from promise
  ✅ can take error
  ✅ can take custom error

 packages/jest-snapshot/src/tests/utils.test.ts

✅ keyToTestName()
✅ testNameToKey
✅ saveSnapshotFile() works with
✅ saveSnapshotFile() works with
✅ getSnapshotData() throws when no snapshot version
✅ getSnapshotData() throws for older snapshot version
✅ getSnapshotData() throws for newer snapshot version
✅ getSnapshotData() does not throw for when updating
✅ getSnapshotData() marks invalid snapshot dirty when updating
✅ getSnapshotData() marks valid snapshot not dirty when updating
✅ escaping
✅ serialize handles \r\n
ExtraLineBreaks
  ✅ 0 empty string
  ✅ 1 line has double quote marks at edges
  ✅ 1 line has spaces at edges
  ✅ 2 lines both are blank
  ✅ 2 lines have double quote marks at edges
  ✅ 2 lines first is blank
  ✅ 2 lines last is blank
removeLinesBeforeExternalMatcherTrap
  ✅ contains external matcher trap
  ✅ doesn't contain external matcher trap
DeepMerge with property matchers
  ✅ Correctly merges a nested object
  ✅ Correctly merges an object with an array of objects
  ✅ Correctly merges an object with an array of strings
  ✅ Correctly merges an array of objects
  ✅ Correctly merges an array of arrays

 packages/jest-source-map/src/tests/getCallsite.test.ts

getCallsite
  ✅ without source map
  ✅ ignores errors when fs throws
  ✅ reads source map file to determine line and column

 packages/jest-test-result/src/tests/formatTestResults.test.ts

formatTestResults
  ✅ includes test full name

 packages/jest-test-sequencer/src/tests/test_sequencer.test.js

✅ sorts by file size if there is no timing information
✅ sorts based on timing information
✅ sorts based on failures and timing information
✅ sorts based on failures, timing information and file size
✅ writes the cache based on results without existing cache
✅ returns failed tests in sorted order
✅ writes the cache based on the results
✅ works with multiple contexts

 packages/jest-transform/src/tests/ScriptTransformer.test.ts

ScriptTransformer
  ✅ transforms a file properly
  ✅ does not transform Node core modules
  ✅ throws an error if `process` doesn't return a string or an objectcontaining `code` key with processed string
  ✅ throws an error if `process` doesn't defined
  ✅ throws an error if createTransformer returns object without `process` method
  ✅ shouldn't throw error without process method. But with corrent createTransformer method
  ✅ uses the supplied preprocessor
  ✅ uses multiple preprocessors
  ✅ writes source map if preprocessor supplies it
  ✅ writes source map if preprocessor inlines it
  ✅ warns of unparseable inlined source maps from the preprocessor
  ✅ writes source maps if given by the transformer
  ✅ does not write source map if not given by the transformer
  ✅ should write a source map for the instrumented file when transformed
  ✅ should write a source map for the instrumented file when not transformed
  ✅ passes expected transform options to getCacheKey
  ✅ creates transformer with config
  ✅ reads values from the cache
  ✅ reads values from the cache when the file contains colons
  ✅ should reuse the value from in-memory cache which is set by custom transformer
  ✅ does not reuse the in-memory cache between different projects
  ✅ preload transformer when using `preloadTransformer`

 packages/jest-transform/src/tests/shouldInstrument.test.ts

shouldInstrument should return true
  ✅ when testRegex is provided and file is not a test file
  ✅ when more than one testRegex is provided and filename is not a test file
  ✅ when testMatch is provided and file is not a test file
  ✅ when testPathIgnorePatterns is provided and file is not a test file
  ✅ when more than one testPathIgnorePatterns is provided and filename is not a test file
  ✅ when testRegex and testPathIgnorePatterns are provided and file is not a test file
  ✅ when testMatch and testPathIgnorePatterns are provided and file is not a test file
  ✅ should return true when file is in collectCoverageOnlyFrom when provided
  ✅ should return true when filename matches collectCoverageFrom
  ✅ should return true if the file is not in coveragePathIgnorePatterns
  ✅ should return true if file is a testfile but forceCoverageMatch is set
shouldInstrument should return false
  ✅ if collectCoverage is falsy
  ✅ when testRegex is provided and filename is a test file
  ✅ when more than one testRegex is provided and filename matches one of the patterns
  ✅ when testMatch is provided and file is a test file
  ✅ when testRegex and testPathIgnorePatterns are provided and filename is a test file
  ✅ when testMatch and testPathIgnorePatterns are provided and file is a test file
  ✅ when file is not in collectCoverageOnlyFrom when provided
  ✅ when filename does not match collectCoverageFrom
  ✅ if the file is in coveragePathIgnorePatterns
  ✅ if file is in mock patterns
  ✅ if file is a globalSetup file
  ✅ if file is globalTeardown file
  ✅ if file is in setupFiles
  ✅ if file is in setupFilesAfterEnv

 packages/jest-util/src/tests/createProcessObject.test.ts

✅ creates a process object that looks like the original one
✅ fakes require("process") so it is equal to "global.process"
✅ checks that process.env works as expected on Linux platforms
✅ checks that process.env works as expected in Windows platforms

 packages/jest-util/src/tests/deepCyclicCopy.test.ts

✅ returns the same value for primitive or function values
✅ does not execute getters/setters, but copies them
✅ copies symbols
✅ copies arrays as array objects
✅ handles cyclic dependencies
✅ uses the blacklist to avoid copying properties on the first level
✅ does not keep the prototype by default when top level is object
✅ does not keep the prototype by default when top level is array
✅ does not keep the prototype of arrays when keepPrototype = false
✅ keeps the prototype of arrays when keepPrototype = true
✅ does not keep the prototype for objects when keepPrototype = false
✅ keeps the prototype for objects when keepPrototype = true

 packages/jest-util/src/tests/errorWithStack.test.ts

ErrorWithStack
  ✅ calls Error.captureStackTrace with given callsite when capture exists

 packages/jest-util/src/tests/formatTime.test.ts

✅ defaults to milliseconds
✅ formats seconds properly
✅ formats milliseconds properly
✅ formats microseconds properly
✅ formats nanoseconds properly
✅ interprets lower than lowest powers as nanoseconds
✅ interprets higher than highest powers as seconds
✅ interprets non-multiple-of-3 powers as next higher prefix
✅ formats the quantity properly when pad length is lower
✅ formats the quantity properly when pad length is equal
✅ left pads the quantity properly when pad length is higher

 packages/jest-util/src/tests/globsToMatcher.test.ts

✅ works like micromatch with only positive globs
✅ works like micromatch with a mix of overlapping positive and negative globs
✅ works like micromatch with only negative globs
✅ works like micromatch with empty globs

 packages/jest-util/src/tests/installCommonGlobals.test.ts

✅ returns the passed object
✅ turns a V8 global object into a Node global object

 packages/jest-util/src/tests/isInteractive.test.ts

✅ Returns true when running on interactive environment
✅ Returns false when running on a non-interactive environment

 packages/jest-util/src/tests/isPromise.test.ts

not a Promise: 
  ✅ undefined
  ✅ null
  ✅ true
  ✅ 42
  ✅ "1337"
  ✅ Symbol()
  ✅ []
  ✅ {}
✅ a resolved Promise
✅ a rejected Promise

 packages/jest-validate/src/tests/validate.test.ts

✅ recursively validates default Jest config
✅ recursively validates default jest-validate config
✅ pretty prints valid config for Boolean
✅ pretty prints valid config for Array
✅ pretty prints valid config for String
✅ pretty prints valid config for Object
✅ pretty prints valid config for Function
✅ omits null and undefined config values
✅ recursively omits null and undefined config values
✅ treat async and non-async functions as equivalent
✅ treat async and non-async functions as equivalent
✅ treat async and non-async functions as equivalent
✅ treat async and non-async functions as equivalent
✅ respects recursiveDenylist
✅ displays warning for unknown config options
✅ displays warning for deprecated config options
✅ works with custom warnings
✅ works with custom errors
✅ works with custom deprecations
✅ works with multiple valid types
✅ reports errors nicely when failing with multiple valid options
✅ Repeated types within multiple valid examples are coalesced in error report
✅ Comments in config JSON using "//" key are not warned

 packages/jest-validate/src/tests/validateCLIOptions.test.js

✅ validates yargs special options
✅ validates testURL
✅ fails for unknown option
✅ fails for multiple unknown options
✅ does not show suggestion when unrecognized cli param length <= 1
✅ shows suggestion when unrecognized cli param length > 1

 packages/jest-watcher/src/lib/tests/formatTestNameByPattern.test.ts

for multiline test name returns
  ✅ test name with highlighted pattern and replaced line breaks
for one line test name with pattern in the head returns
  ✅ test name with highlighted pattern
  ✅ test name with cutted tail and highlighted pattern
  ✅ test name with cutted tail and cutted highlighted pattern
for one line test name pattern in the middle
  ✅ test name with highlighted pattern returns
  ✅ test name with cutted tail and highlighted pattern
  ✅ test name with cutted tail and cutted highlighted pattern
  ✅ test name with highlighted cutted
for one line test name pattern in the tail returns
  ✅ test name with highlighted pattern
  ✅ test name with cutted tail and cutted highlighted pattern
  ✅ test name with highlighted cutted

 packages/jest-watcher/src/lib/tests/prompt.test.ts

✅ calls handler on change value
✅ calls handler on success prompt
✅ calls handler on cancel prompt

 packages/jest-watcher/src/lib/tests/scroll.test.ts

✅ When offset is -1
✅ When offset is in the first set of items
✅ When offset is in the middle of the list
✅ When offset is at the end of the list
✅ When offset is at the end and size is smaller than max

 packages/jest-worker/src/tests/Farm.test.js

Farm
  ✅ sends a request to one worker
  ✅ sends four requests to four unique workers
  ✅ handles null computeWorkerKey, sending to first worker
  ✅ sends the same worker key to the same worker
  ✅ returns the result if the call worked
  ✅ throws if the call failed
  ✅ checks that once a sticked task finishes, next time is sent to that worker
  ✅ checks that even before a sticked task finishes, next time is sent to that worker
  ✅ checks that locking works, and jobs are never lost
  ✅ can receive custom messages from workers

 packages/jest-worker/src/tests/FifoQueue.test.js

✅ returns the shared tasks in FIFO ordering
✅ returns the worker specific tasks in FIFO ordering
✅ maintains global FIFO ordering between worker specific and shared tasks

 packages/jest-worker/src/tests/index.test.js

✅ exposes the right API using default working
✅ exposes the right API using passed worker
✅ breaks if any of the forbidden methods is tried to be exposed
✅ works with minimal options
✅ does not let make calls after the farm is ended
✅ does not let end the farm after it is ended
✅ calls doWork
✅ calls getStderr and getStdout from worker

 packages/jest-worker/src/tests/PriorityQueue.test.js

✅ returns the tasks in order
✅ returns the task with the lowest priority value if inserted in reversed order
✅ returns the task with the lowest priority value if inserted in correct order
✅ uses different queues for each worker
✅ process task in the global and shared queue in order

 packages/jest-worker/src/tests/process-integration.test.js

Jest Worker Integration
  ✅ calls a single method from the worker
  ✅ distributes sequential calls across child processes
  ✅ schedules the task on the first available child processes if the scheduling policy is in-order
  ✅ distributes concurrent calls across child processes
  ✅ sticks parallel calls to children

 packages/jest-worker/src/tests/thread-integration.test.js

Jest Worker Process Integration
  ✅ calls a single method from the worker
  ✅ distributes sequential calls across child processes
  ✅ schedules the task on the first available child processes if the scheduling policy is in-order
  ✅ schedules the task on the first available child processes
  ✅ distributes concurrent calls across child processes
  ✅ sticks parallel calls to children

 packages/jest-worker/src/tests/WorkerPool.test.js

WorkerPool
  ✅ should create a ChildProcessWorker and send to it
  ✅ should create a NodeThreadWorker and send to it
  ✅ should avoid NodeThreadWorker if not passed enableWorkerThreads

 packages/jest-worker/src/base/tests/BaseWorkerPool.test.js

BaseWorkerPool
  ✅ throws error when createWorker is not defined
  ✅ creates and exposes n workers
  ✅ creates and expoeses n workers
  ✅ creates workers with the right options
  ✅ makes a non-existing relative worker throw
  ✅ create multiple workers with unique worker ids
  ✅ aggregates all stdouts and stderrs from all workers
  ✅ works when stdout and stderr are not piped to the parent
BaseWorkerPool end
  ✅ ends all workers
  ✅ resolves with forceExited=false if workers exited gracefully
  ✅ force exits workers that do not exit gracefully and resolves with forceExited=true

 packages/jest-worker/src/workers/tests/ChildProcessWorker.test.js

✅ passes fork options down to child_process.fork, adding the defaults
✅ passes workerId to the child process and assign it to 1-indexed env.JEST_WORKER_ID
✅ initializes the child process with the given workerPath
✅ stops initializing the worker after the amount of retries is exceeded
✅ provides stdout and stderr from the child processes
✅ sends the task to the child process
✅ resends the task to the child process after a retry
✅ calls the onProcessStart method synchronously if the queue is empty
✅ can send multiple messages to parent
✅ creates error instances for known errors
✅ throws when the child process returns a strange message
✅ does not restart the child if it cleanly exited
✅ resolves waitForExit() after the child process cleanly exited
✅ restarts the child when the child process dies
✅ sends SIGTERM when forceExit() is called
✅ sends SIGKILL some time after SIGTERM
✅ does not send SIGKILL if SIGTERM exited the process

 packages/jest-worker/src/workers/tests/NodeThreadsWorker.test.js

✅ passes fork options down to child_process.fork, adding the defaults
✅ passes workerId to the thread and assign it to env.JEST_WORKER_ID
✅ initializes the thread with the given workerPath
✅ stops initializing the worker after the amount of retries is exceeded
✅ provides stdout and stderr from the threads
✅ sends the task to the thread
✅ resends the task to the thread after a retry
✅ calls the onProcessStart method synchronously if the queue is empty
✅ can send multiple messages to parent
✅ creates error instances for known errors
✅ throws when the thread returns a strange message
✅ does not restart the thread if it cleanly exited
✅ resolves waitForExit() after the thread cleanly exited
✅ restarts the thread when the thread dies
✅ terminates the thread when forceExit() is called

 packages/jest-worker/src/workers/tests/processChild.test.js

✅ lazily requires the file
✅ calls initialize with the correct arguments
✅ returns results immediately when function is synchronous
✅ returns results when it gets resolved if function is asynchronous
✅ calls the main module if the method call is "default"
✅ calls the main export if the method call is "default" and it is a Babel transpiled one
✅ removes the message listener on END message
✅ calls the teardown method
✅ throws if an invalid message is detected
✅ throws if child is not forked

 packages/jest-worker/src/workers/tests/threadChild.test.js

✅ lazily requires the file
✅ calls initialize with the correct arguments
✅ returns results immediately when function is synchronous
✅ returns results when it gets resolved if function is asynchronous
✅ calls the main module if the method call is "default"
✅ calls the main export if the method call is "default" and it is a Babel transpiled one
✅ removes the message listener on END message
✅ calls the teardown method
✅ throws if an invalid message is detected
✅ throws if child is not forked

 packages/pretty-format/src/tests/AsymmetricMatcher.test.ts

✅ supports any(String)
✅ supports nested any(String)
✅ supports any(Function)
✅ supports nested any(Function)
✅ supports any(Array)
✅ supports nested any(Array)
✅ supports any(Object)
✅ supports nested any(Object)
✅ supports any(RegExp)
✅ supports nested any(RegExp)
✅ supports any(Symbol)
✅ supports nested any(Symbol)
✅ supports any(Function)
✅ supports nested any(Function)
✅ supports any(<anonymous>)
✅ supports nested any(<anonymous>)
✅ supports any(namedFuntction)
✅ supports nested any(namedFuntction)
✅ anything()
✅ arrayContaining()
✅ arrayNotContaining()
✅ objectContaining()
✅ objectNotContaining()
✅ stringContaining(string)
✅ not.stringContaining(string)
✅ stringMatching(string)
✅ stringMatching(regexp)
✅ stringMatching(regexp) {escapeRegex: false}
✅ stringMatching(regexp) {escapeRegex: true}
✅ stringNotMatching(string)
✅ supports multiple nested asymmetric matchers
✅ min option
indent option
  ✅ default implicit: 2 spaces
  ✅ default explicit: 2 spaces
  ✅ non-default: 0 spaces
  ✅ non-default: 4 spaces
maxDepth option
  ✅ matchers as leaf nodes
  ✅ matchers as internal nodes

 packages/pretty-format/src/tests/ConvertAnsi.test.ts

ConvertAnsi plugin
  ✅ supports style.red
  ✅ supports style.green
  ✅ supports style.reset
  ✅ supports style.bold
  ✅ supports style.dim
  ✅ does not support other colors

 packages/pretty-format/src/tests/DOMCollection.test.ts

DOMCollection plugin for object properties
  ✅ supports DOMStringMap
  ✅ supports NamedNodeMap
  ✅ supports config.min option
DOMCollection plugin for list items
  ✅ supports HTMLCollection for getElementsByTagName
  ✅ supports HTMLCollection for children
  ✅ supports config.maxDepth option
  ✅ supports NodeList for querySelectorAll
  ✅ supports NodeList for childNodes
  ✅ supports HTMLOptionsCollection for select options
  ✅ supports HTMLCollection for form elements

 packages/pretty-format/src/tests/DOMElement.test.ts

pretty-format
  ✅ prints global window as constructor name alone
DOMElement Plugin
  ✅ supports a single HTML element
  ✅ supports an HTML element with a class property
  ✅ supports an HTML element with a title property
  ✅ escapes double quote in attribute value
  ✅ supports an HTML element with a single attribute
  ✅ supports an HTML element with multiple attributes
  ✅ supports an HTML element with attribute and text content
  ✅ supports an element with text content
  ✅ supports nested elements
  ✅ supports nested elements with attributes
  ✅ supports nested elements with attribute and text content
  ✅ supports nested elements with text content
  ✅ supports siblings
  ✅ supports multiline text node in pre
  ✅ supports multiline text node preceding span in pre
  ✅ supports multiline text node in textarea
  ✅ supports empty text node
  ✅ supports non-empty text node
  ✅ supports comment node
  ✅ supports fragment node
  ✅ supports custom elements
  ✅ supports SVG elements
  ✅ supports indentation for array of elements
  ✅ supports maxDepth option
  ✅ handles `tagName` not being a string
DOMElement Plugin matches constructor name of SVG elements
  ✅ jsdom 9 and 10
  ✅ jsdom 11

 packages/pretty-format/src/tests/Immutable.test.ts

✅ does not incorrectly match identity-obj-proxy as Immutable object
Immutable.OrderedSet
  ✅ supports an empty collection {min: true}
  ✅ supports an empty collection {min: false}
  ✅ supports a single string element
  ✅ supports a single integer element
  ✅ supports multiple string elements {min: true}
  ✅ supports multiple string elements {min: false}
  ✅ supports multiple integer elements {min: true}
  ✅ supports multiple integer elements {min: false}
  ✅ supports object elements {min: true}
  ✅ supports object elements {min: false}
  ✅ supports React elements {min: true}
  ✅ supports React elements {min: false}
Immutable.List
  ✅ supports an empty collection {min: true}
  ✅ supports an empty collection {min: false}
  ✅ supports a single string element
  ✅ supports a single integer element
  ✅ supports multiple string elements {min: true}
  ✅ supports multiple string elements {min: false}
  ✅ supports multiple integer elements {min: true}
  ✅ supports multiple integer elements {min: false}
  ✅ supports object elements {min: true}
  ✅ supports object elements {min: false}
  ✅ supports React elements {min: true}
  ✅ supports React elements {min: false}
Immutable.Stack
  ✅ supports an empty collection {min: true}
  ✅ supports an empty collection {min: false}
  ✅ supports a single string element
  ✅ supports a single integer element
  ✅ supports multiple string elements {min: true}
  ✅ supports multiple string elements {min: false}
  ✅ supports multiple integer elements {min: true}
  ✅ supports multiple integer elements {min: false}
  ✅ supports object elements {min: true}
  ✅ supports object elements {min: false}
  ✅ supports React elements {min: true}
  ✅ supports React elements {min: false}
Immutable.Set
  ✅ supports an empty collection {min: true}
  ✅ supports an empty collection {min: false}
  ✅ supports a single string element
  ✅ supports a single integer element
  ✅ supports multiple string elements {min: true}
  ✅ supports multiple string elements {min: false}
  ✅ supports multiple integer elements {min: true}
  ✅ supports multiple integer elements {min: false}
  ✅ supports object elements {min: true}
  ✅ supports object elements {min: false}
  ✅ supports React elements {min: true}
  ✅ supports React elements {min: false}
Immutable.Map
  ✅ supports an empty collection {min: true}
  ✅ supports an empty collection {min: false}
  ✅ supports an object with single key
  ✅ supports an object with multiple keys {min: true}
  ✅ supports an object with multiple keys {min: false}
  ✅ supports object elements {min: true}
  ✅ supports object elements {min: false}
  ✅ supports React elements {min: true}
  ✅ supports React elements {min: false}
Immutable.OrderedMap
  ✅ supports an empty collection {min: true}
  ✅ supports an empty collection {min: false}
  ✅ supports an object with single key
  ✅ supports an object with multiple keys {min: true}
  ✅ supports an object with multiple keys {min: false}
  ✅ supports object elements {min: true}
  ✅ supports object elements {min: false}
  ✅ supports React elements {min: true}
  ✅ supports React elements {min: false}
  ✅ supports non-string keys
Immutable.Record
  ✅ supports an empty record {min: true}
  ✅ supports an empty record {min: false}
  ✅ supports a record with descriptive name
  ✅ supports a record without descriptive name
  ✅ supports a record with values {min: true}
  ✅ supports a record with values {min: false}
  ✅ supports a record with Map value {min: true}
  ✅ supports a record with Map value {min: false}
  ✅ supports imbricated Record {min: true}
  ✅ supports imbricated Record {min: false}
indentation of heterogeneous collections
  ✅ empty Immutable.List as child of Object
  ✅ empty Immutable.Map as child of Array
  ✅ non-empty Array as child of Immutable.Map
  ✅ non-empty Object as child of Immutable.List
indent option
  ✅ default implicit: 2 spaces
  ✅ default explicit: 2 spaces
  ✅ non-default: 0 spaces
  ✅ non-default: 4 spaces
maxDepth option
  ✅ Immutable.List as child of Object
  ✅ Immutable.Map as child of Array
  ✅ Immutable.Seq as child of Immutable.Map
  ✅ Immutable.Map as descendants in immutable collection
Immutable.Seq
  ✅ supports an empty sequence from array {min: true}
  ✅ supports an empty sequence from array {min: false}
  ✅ supports a non-empty sequence from array {min: true}
  ✅ supports a non-empty sequence from array {min: false}
  ✅ supports a non-empty sequence from arguments
  ✅ supports an empty sequence from object {min: true}
  ✅ supports an empty sequence from object {min: false}
  ✅ supports a non-empty sequence from object {min: true}
  ✅ supports a non-empty sequence from object {min: false}
  ✅ supports a sequence of entries from Immutable.Map
  ✅ supports a sequence of values from ECMAScript Set
  ✅ supports a sequence of values from Immutable.List
  ✅ supports a sequence of values from Immutable.Set
  ✅ supports a sequence of values from Immutable.Stack
Immutable.Seq lazy entries
  ✅ from object properties
  ✅ from Immutable.Map entries
Immutable.Seq lazy values
  ✅ from Immutable.Range
  ✅ from iterator
  ✅ from array items
  ✅ from Immutable.List values
  ✅ from ECMAScript Set values

 packages/pretty-format/src/tests/prettyFormat.test.ts

prettyFormat()
  ✅ prints empty arguments
  ✅ prints arguments
  ✅ prints an empty array
  ✅ prints an array with items
  ✅ prints a empty typed array
  ✅ prints a typed array with items
  ✅ prints an array buffer
  ✅ prints a nested array
  ✅ prints true
  ✅ prints false
  ✅ prints an error
  ✅ prints a typed error with a message
  ✅ prints a function constructor
  ✅ prints an anonymous callback function
  ✅ prints an anonymous assigned function
  ✅ prints a named function
  ✅ prints a named generator function
  ✅ can customize function names
  ✅ prints Infinity
  ✅ prints -Infinity
  ✅ prints an empty map
  ✅ prints a map with values
  ✅ prints a map with non-string keys
  ✅ prints NaN
  ✅ prints null
  ✅ prints a positive number
  ✅ prints a negative number
  ✅ prints zero
  ✅ prints negative zero
  ✅ prints a positive bigint
  ✅ prints a negative bigint
  ✅ prints zero bigint
  ✅ prints negative zero bigint
  ✅ prints a date
  ✅ prints an invalid date
  ✅ prints an empty object
  ✅ prints an object with properties
  ✅ prints an object with properties and symbols
  ✅ prints an object without non-enumerable properties which have string key
  ✅ prints an object without non-enumerable properties which have symbol key
  ✅ prints an object with sorted properties
  ✅ prints regular expressions from constructors
  ✅ prints regular expressions from literals
  ✅ prints regular expressions {escapeRegex: false}
  ✅ prints regular expressions {escapeRegex: true}
  ✅ escapes regular expressions nested inside object
  ✅ prints an empty set
  ✅ prints a set with values
  ✅ prints a string
  ✅ prints and escape a string
  ✅ doesn't escape string with {excapeString: false}
  ✅ prints a string with escapes
  ✅ prints a multiline string
  ✅ prints a multiline string as value of object property
  ✅ prints a symbol
  ✅ prints undefined
  ✅ prints a WeakMap
  ✅ prints a WeakSet
  ✅ prints deeply nested objects
  ✅ prints circular references
  ✅ prints parallel references
  ✅ can customize the max depth
  ✅ throws on invalid options
  ✅ supports plugins
  ✅ supports plugins that return empty string
  ✅ throws if plugin does not return a string
  ✅ throws PrettyFormatPluginError if test throws an error
  ✅ throws PrettyFormatPluginError if print throws an error
  ✅ throws PrettyFormatPluginError if serialize throws an error
  ✅ supports plugins with deeply nested arrays (#24)
  ✅ should call plugins on nested basic values
  ✅ prints objects with no constructor
  ✅ prints identity-obj-proxy with string constructor
  ✅ calls toJSON and prints its return value
  ✅ calls toJSON and prints an internal representation.
  ✅ calls toJSON only on functions
  ✅ does not call toJSON recursively
  ✅ calls toJSON on Sets
  ✅ disables toJSON calls through options
prettyFormat() indent option
  ✅ default implicit: 2 spaces
  ✅ default explicit: 2 spaces
  ✅ non-default: 0 spaces
  ✅ non-default: 4 spaces
prettyFormat() min
  ✅ prints some basic values in min mode
  ✅ prints some complex values in min mode
  ✅ does not allow indent !== 0 in min mode

 packages/pretty-format/src/tests/react.test.tsx

✅ supports a single element with no props or children
✅ supports a single element with non-empty string child
✅ supports a single element with empty string child
✅ supports a single element with non-zero number child
✅ supports a single element with zero number child
✅ supports a single element with mixed children
✅ supports props with strings
✅ supports props with multiline strings
✅ supports props with numbers
✅ supports a single element with a function prop
✅ supports a single element with a object prop
✅ supports an element with and object prop and children
✅ supports an element with complex props and mixed children
✅ escapes children properly
✅ supports everything all together
✅ sorts props in nested components
✅ supports a single element with React elements as props
✅ supports a single element with React elements with props
✅ supports a single element with custom React elements with props
✅ supports a single element with custom React elements with props (using displayName)
✅ supports a single element with custom React elements with props (using anonymous function)
✅ supports a single element with custom React elements with a child
✅ supports undefined element type
✅ supports a fragment with no children
✅ supports a fragment with string child
✅ supports a fragment with element child
✅ supports suspense
✅ supports a single element with React elements with a child
✅ supports a single element with React elements with children
✅ supports a single element with React elements with array children
✅ supports array of elements
✅ min option
✅ ReactElement plugin highlights syntax
✅ ReactTestComponent plugin highlights syntax
✅ throws if theme option is null
✅ throws if theme option is not of type "object"
✅ throws if theme option has value that is undefined in ansi-styles
✅ ReactElement plugin highlights syntax with color from theme option
✅ ReactTestComponent plugin highlights syntax with color from theme option
✅ supports forwardRef with a child
✅ supports context Provider with a child
✅ supports context Consumer with a child
✅ ReactElement removes undefined props
✅ ReactTestComponent removes undefined props
test object for subset match
  ✅ undefined props
  ✅ undefined children
indent option
  ✅ default implicit: 2 spaces
  ✅ default explicit: 2 spaces
  ✅ non-default: 0 spaces
  ✅ non-default: 4 spaces
maxDepth option
  ✅ elements
  ✅ array of elements
React.memo without displayName
  ✅ renders the component name
React.memo with displayName
  ✅ renders the displayName of component before memoizing
  ✅ renders the displayName of memoized component

 packages/pretty-format/src/tests/ReactElement.test.ts

ReactElement Plugin
  ✅ serializes forwardRef without displayName
  ✅ serializes forwardRef with displayName
  ✅ serializes forwardRef component with displayName