aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@jest/test-sequencer/build/index.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@jest/test-sequencer/build/index.d.ts')
-rw-r--r--node_modules/@jest/test-sequencer/build/index.d.ts51
1 files changed, 51 insertions, 0 deletions
diff --git a/node_modules/@jest/test-sequencer/build/index.d.ts b/node_modules/@jest/test-sequencer/build/index.d.ts
new file mode 100644
index 0000000..7b48a2b
--- /dev/null
+++ b/node_modules/@jest/test-sequencer/build/index.d.ts
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+import type { AggregatedResult, Test } from '@jest/test-result';
+import type { Context } from 'jest-runtime';
+declare type Cache = {
+ [key: string]: [0 | 1, number];
+};
+/**
+ * The TestSequencer will ultimately decide which tests should run first.
+ * It is responsible for storing and reading from a local cache
+ * map that stores context information for a given test, such as how long it
+ * took to run during the last run and if it has failed or not.
+ * Such information is used on:
+ * TestSequencer.sort(tests: Array<Test>)
+ * to sort the order of the provided tests.
+ *
+ * After the results are collected,
+ * TestSequencer.cacheResults(tests: Array<Test>, results: AggregatedResult)
+ * is called to store/update this information on the cache map.
+ */
+export default class TestSequencer {
+ private _cache;
+ _getCachePath(context: Context): string;
+ _getCache(test: Test): Cache;
+ /**
+ * Sorting tests is very important because it has a great impact on the
+ * user-perceived responsiveness and speed of the test run.
+ *
+ * If such information is on cache, tests are sorted based on:
+ * -> Has it failed during the last run ?
+ * Since it's important to provide the most expected feedback as quickly
+ * as possible.
+ * -> How long it took to run ?
+ * Because running long tests first is an effort to minimize worker idle
+ * time at the end of a long test run.
+ * And if that information is not available they are sorted based on file size
+ * since big test files usually take longer to complete.
+ *
+ * Note that a possible improvement would be to analyse other information
+ * from the file other than its size.
+ *
+ */
+ sort(tests: Array<Test>): Array<Test>;
+ allFailedTests(tests: Array<Test>): Array<Test>;
+ cacheResults(tests: Array<Test>, results: AggregatedResult): void;
+}
+export {};