Add node modules and compiled JavaScript from main (#57)

Co-authored-by: Oliver King <oking3@uncc.edu>
This commit is contained in:
github-actions[bot] 2022-06-21 12:18:30 -04:00 committed by GitHub
parent d893f27da9
commit 7f7e5ba5ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6750 changed files with 1745644 additions and 10860 deletions

35
node_modules/jest-runner/build/index.d.ts generated vendored Normal file
View file

@ -0,0 +1,35 @@
/**
* 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 { Config } from '@jest/types';
import Emittery = require('emittery');
import type { OnTestFailure as JestOnTestFailure, OnTestStart as JestOnTestStart, OnTestSuccess as JestOnTestSuccess, Test as JestTest, TestEvents as JestTestEvents, TestFileEvent as JestTestFileEvent, TestRunnerContext as JestTestRunnerContext, TestRunnerOptions as JestTestRunnerOptions, TestWatcher as JestTestWatcher } from './types';
declare namespace TestRunner {
type Test = JestTest;
type OnTestFailure = JestOnTestFailure;
type OnTestStart = JestOnTestStart;
type OnTestSuccess = JestOnTestSuccess;
type TestWatcher = JestTestWatcher;
type TestRunnerContext = JestTestRunnerContext;
type TestRunnerOptions = JestTestRunnerOptions;
type TestFileEvent = JestTestFileEvent;
}
declare class TestRunner {
private readonly _globalConfig;
private readonly _context;
private readonly eventEmitter;
readonly __PRIVATE_UNSTABLE_API_supportsEventEmitters__: boolean;
readonly isSerial?: boolean;
constructor(globalConfig: Config.GlobalConfig, context?: JestTestRunnerContext);
runTests(tests: Array<JestTest>, watcher: JestTestWatcher, onStart: JestOnTestStart | undefined, onResult: JestOnTestSuccess | undefined, onFailure: JestOnTestFailure | undefined, options: JestTestRunnerOptions): Promise<void>;
private _createInBandTestRun;
private _createParallelTestRun;
on: {
<Name extends "test-file-start" | "test-file-success" | "test-file-failure" | "test-case-result">(eventName: Name, listener: (eventData: JestTestEvents[Name]) => void): Emittery.UnsubscribeFn;
<Name_1 extends never>(eventName: Name_1, listener: () => void): Emittery.UnsubscribeFn;
};
}
export = TestRunner;

320
node_modules/jest-runner/build/index.js generated vendored Normal file
View file

@ -0,0 +1,320 @@
'use strict';
function _exit() {
const data = _interopRequireDefault(require('exit'));
_exit = function () {
return data;
};
return data;
}
function _chalk() {
const data = _interopRequireDefault(require('chalk'));
_chalk = function () {
return data;
};
return data;
}
function _emittery() {
const data = _interopRequireDefault(require('emittery'));
_emittery = function () {
return data;
};
return data;
}
function _throat() {
const data = _interopRequireDefault(require('throat'));
_throat = function () {
return data;
};
return data;
}
function _jestWorker() {
const data = _interopRequireDefault(require('jest-worker'));
_jestWorker = function () {
return data;
};
return data;
}
function _jestUtil() {
const data = require('jest-util');
_jestUtil = function () {
return data;
};
return data;
}
var _runTest = _interopRequireDefault(require('./runTest'));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {default: obj};
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
const TEST_WORKER_PATH = require.resolve('./testWorker');
/* eslint-disable-next-line no-redeclare */
class TestRunner {
constructor(globalConfig, context) {
_defineProperty(this, '_globalConfig', void 0);
_defineProperty(this, '_context', void 0);
_defineProperty(this, 'eventEmitter', new (_emittery().default.Typed)());
_defineProperty(
this,
'__PRIVATE_UNSTABLE_API_supportsEventEmitters__',
true
);
_defineProperty(this, 'isSerial', void 0);
_defineProperty(this, 'on', this.eventEmitter.on.bind(this.eventEmitter));
this._globalConfig = globalConfig;
this._context = context || {};
}
async runTests(tests, watcher, onStart, onResult, onFailure, options) {
return await (options.serial
? this._createInBandTestRun(tests, watcher, onStart, onResult, onFailure)
: this._createParallelTestRun(
tests,
watcher,
onStart,
onResult,
onFailure
));
}
async _createInBandTestRun(tests, watcher, onStart, onResult, onFailure) {
process.env.JEST_WORKER_ID = '1';
const mutex = (0, _throat().default)(1);
return tests.reduce(
(promise, test) =>
mutex(() =>
promise
.then(async () => {
if (watcher.isInterrupted()) {
throw new CancelRun();
}
let sendMessageToJest; // Remove `if(onStart)` in Jest 27
if (onStart) {
await onStart(test);
return (0, _runTest.default)(
test.path,
this._globalConfig,
test.context.config,
test.context.resolver,
this._context,
undefined
);
} else {
// `deepCyclicCopy` used here to avoid mem-leak
sendMessageToJest = (eventName, args) =>
this.eventEmitter.emit(
eventName,
(0, _jestUtil().deepCyclicCopy)(args, {
keepPrototype: false
})
);
await this.eventEmitter.emit('test-file-start', [test]);
return (0, _runTest.default)(
test.path,
this._globalConfig,
test.context.config,
test.context.resolver,
this._context,
sendMessageToJest
);
}
})
.then(result => {
if (onResult) {
return onResult(test, result);
} else {
return this.eventEmitter.emit('test-file-success', [
test,
result
]);
}
})
.catch(err => {
if (onFailure) {
return onFailure(test, err);
} else {
return this.eventEmitter.emit('test-file-failure', [test, err]);
}
})
),
Promise.resolve()
);
}
async _createParallelTestRun(tests, watcher, onStart, onResult, onFailure) {
const resolvers = new Map();
for (const test of tests) {
if (!resolvers.has(test.context.config.name)) {
resolvers.set(test.context.config.name, {
config: test.context.config,
serializableModuleMap: test.context.moduleMap.toJSON()
});
}
}
const worker = new (_jestWorker().default)(TEST_WORKER_PATH, {
exposedMethods: ['worker'],
forkOptions: {
stdio: 'pipe'
},
maxRetries: 3,
numWorkers: this._globalConfig.maxWorkers,
setupArgs: [
{
serializableResolvers: Array.from(resolvers.values())
}
]
});
if (worker.getStdout()) worker.getStdout().pipe(process.stdout);
if (worker.getStderr()) worker.getStderr().pipe(process.stderr);
const mutex = (0, _throat().default)(this._globalConfig.maxWorkers); // Send test suites to workers continuously instead of all at once to track
// the start time of individual tests.
const runTestInWorker = test =>
mutex(async () => {
if (watcher.isInterrupted()) {
return Promise.reject();
} // Remove `if(onStart)` in Jest 27
if (onStart) {
await onStart(test);
} else {
await this.eventEmitter.emit('test-file-start', [test]);
}
const promise = worker.worker({
config: test.context.config,
context: {
...this._context,
changedFiles:
this._context.changedFiles &&
Array.from(this._context.changedFiles),
sourcesRelatedToTestsInChangedFiles:
this._context.sourcesRelatedToTestsInChangedFiles &&
Array.from(this._context.sourcesRelatedToTestsInChangedFiles)
},
globalConfig: this._globalConfig,
path: test.path
});
if (promise.UNSTABLE_onCustomMessage) {
// TODO: Get appropriate type for `onCustomMessage`
promise.UNSTABLE_onCustomMessage(([event, payload]) => {
this.eventEmitter.emit(event, payload);
});
}
return promise;
});
const onError = async (err, test) => {
// Remove `if(onFailure)` in Jest 27
if (onFailure) {
await onFailure(test, err);
} else {
await this.eventEmitter.emit('test-file-failure', [test, err]);
}
if (err.type === 'ProcessTerminatedError') {
console.error(
'A worker process has quit unexpectedly! ' +
'Most likely this is an initialization error.'
);
(0, _exit().default)(1);
}
};
const onInterrupt = new Promise((_, reject) => {
watcher.on('change', state => {
if (state.interrupted) {
reject(new CancelRun());
}
});
});
const runAllTests = Promise.all(
tests.map(test =>
runTestInWorker(test)
.then(result => {
if (onResult) {
return onResult(test, result);
} else {
return this.eventEmitter.emit('test-file-success', [
test,
result
]);
}
})
.catch(error => onError(error, test))
)
);
const cleanup = async () => {
const {forceExited} = await worker.end();
if (forceExited) {
console.error(
_chalk().default.yellow(
'A worker process has failed to exit gracefully and has been force exited. ' +
'This is likely caused by tests leaking due to improper teardown. ' +
'Try running with --runInBand --detectOpenHandles to find leaks.'
)
);
}
};
return Promise.race([runAllTests, onInterrupt]).then(cleanup, cleanup);
}
}
class CancelRun extends Error {
constructor(message) {
super(message);
this.name = 'CancelRun';
}
}
module.exports = TestRunner;

12
node_modules/jest-runner/build/runTest.d.ts generated vendored Normal file
View file

@ -0,0 +1,12 @@
/**
* 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 { Config } from '@jest/types';
import type { TestResult } from '@jest/test-result';
import type { ResolverType } from 'jest-resolve';
import type { TestFileEvent, TestRunnerContext } from './types';
export default function runTest(path: Config.Path, globalConfig: Config.GlobalConfig, config: Config.ProjectConfig, resolver: ResolverType, context?: TestRunnerContext, sendMessageToJest?: TestFileEvent): Promise<TestResult>;

483
node_modules/jest-runner/build/runTest.js generated vendored Normal file
View file

@ -0,0 +1,483 @@
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = runTest;
function _console() {
const data = require('@jest/console');
_console = function () {
return data;
};
return data;
}
function _jestRuntime() {
const data = _interopRequireDefault(require('jest-runtime'));
_jestRuntime = function () {
return data;
};
return data;
}
function fs() {
const data = _interopRequireWildcard(require('graceful-fs'));
fs = function () {
return data;
};
return data;
}
function _jestUtil() {
const data = require('jest-util');
_jestUtil = function () {
return data;
};
return data;
}
function _jestLeakDetector() {
const data = _interopRequireDefault(require('jest-leak-detector'));
_jestLeakDetector = function () {
return data;
};
return data;
}
function _jestConfig() {
const data = require('jest-config');
_jestConfig = function () {
return data;
};
return data;
}
function docblock() {
const data = _interopRequireWildcard(require('jest-docblock'));
docblock = function () {
return data;
};
return data;
}
function _jestMessageUtil() {
const data = require('jest-message-util');
_jestMessageUtil = function () {
return data;
};
return data;
}
function _sourceMapSupport() {
const data = _interopRequireDefault(require('source-map-support'));
_sourceMapSupport = function () {
return data;
};
return data;
}
function _chalk() {
const data = _interopRequireDefault(require('chalk'));
_chalk = function () {
return data;
};
return data;
}
function _getRequireWildcardCache() {
if (typeof WeakMap !== 'function') return null;
var cache = new WeakMap();
_getRequireWildcardCache = function () {
return cache;
};
return cache;
}
function _interopRequireWildcard(obj) {
if (obj && obj.__esModule) {
return obj;
}
if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) {
return {default: obj};
}
var cache = _getRequireWildcardCache();
if (cache && cache.has(obj)) {
return cache.get(obj);
}
var newObj = {};
var hasPropertyDescriptor =
Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor
? Object.getOwnPropertyDescriptor(obj, key)
: null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj);
}
return newObj;
}
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {default: obj};
}
/**
* 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.
*
*/
function freezeConsole(testConsole, config) {
// @ts-expect-error: `_log` is `private` - we should figure out some proper API here
testConsole._log = function fakeConsolePush(_type, message) {
const error = new (_jestUtil().ErrorWithStack)(
`${_chalk().default.red(
`${_chalk().default.bold(
'Cannot log after tests are done.'
)} Did you forget to wait for something async in your test?`
)}\nAttempted to log "${message}".`,
fakeConsolePush
);
const formattedError = (0, _jestMessageUtil().formatExecError)(
error,
config,
{
noStackTrace: false
},
undefined,
true
);
process.stderr.write('\n' + formattedError + '\n'); // TODO: set exit code in Jest 25
// process.exitCode = 1;
};
} // Keeping the core of "runTest" as a separate function (as "runTestInternal")
// is key to be able to detect memory leaks. Since all variables are local to
// the function, when "runTestInternal" finishes its execution, they can all be
// freed, UNLESS something else is leaking them (and that's why we can detect
// the leak!).
//
// If we had all the code in a single function, we should manually nullify all
// references to verify if there is a leak, which is not maintainable and error
// prone. That's why "runTestInternal" CANNOT be inlined inside "runTest".
async function runTestInternal(
path,
globalConfig,
config,
resolver,
context,
sendMessageToJest
) {
const testSource = fs().readFileSync(path, 'utf8');
const docblockPragmas = docblock().parse(docblock().extract(testSource));
const customEnvironment = docblockPragmas['jest-environment'];
let testEnvironment = config.testEnvironment;
if (customEnvironment) {
if (Array.isArray(customEnvironment)) {
throw new Error(
`You can only define a single test environment through docblocks, got "${customEnvironment.join(
', '
)}"`
);
}
testEnvironment = (0, _jestConfig().getTestEnvironment)({
...config,
testEnvironment: customEnvironment
});
}
const TestEnvironment = (0, _jestUtil().interopRequireDefault)(
require(testEnvironment)
).default;
const testFramework =
process.env.JEST_CIRCUS === '1'
? require('jest-circus/runner') // eslint-disable-line import/no-extraneous-dependencies
: require(config.testRunner);
const Runtime = config.moduleLoader
? require(config.moduleLoader)
: require('jest-runtime');
const consoleOut = globalConfig.useStderr ? process.stderr : process.stdout;
const consoleFormatter = (type, message) =>
(0, _console().getConsoleOutput)(
config.cwd,
!!globalConfig.verbose, // 4 = the console call is buried 4 stack frames deep
_console().BufferedConsole.write([], type, message, 4),
config,
globalConfig
);
let testConsole;
if (globalConfig.silent) {
testConsole = new (_console().NullConsole)(
consoleOut,
consoleOut,
consoleFormatter
);
} else if (globalConfig.verbose) {
testConsole = new (_console().CustomConsole)(
consoleOut,
consoleOut,
consoleFormatter
);
} else {
testConsole = new (_console().BufferedConsole)();
}
const environment = new TestEnvironment(config, {
console: testConsole,
docblockPragmas,
testPath: path
});
const leakDetector = config.detectLeaks
? new (_jestLeakDetector().default)(environment)
: null;
const cacheFS = {
[path]: testSource
};
(0, _jestUtil().setGlobal)(environment.global, 'console', testConsole);
const runtime = new Runtime(config, environment, resolver, cacheFS, {
changedFiles:
context === null || context === void 0 ? void 0 : context.changedFiles,
collectCoverage: globalConfig.collectCoverage,
collectCoverageFrom: globalConfig.collectCoverageFrom,
collectCoverageOnlyFrom: globalConfig.collectCoverageOnlyFrom,
coverageProvider: globalConfig.coverageProvider,
sourcesRelatedToTestsInChangedFiles:
context === null || context === void 0
? void 0
: context.sourcesRelatedToTestsInChangedFiles
});
const start = Date.now();
for (const path of config.setupFiles) {
var _runtime$unstable_sho;
// TODO: remove ? in Jest 26
const esm =
(_runtime$unstable_sho = runtime.unstable_shouldLoadAsEsm) === null ||
_runtime$unstable_sho === void 0
? void 0
: _runtime$unstable_sho.call(runtime, path);
if (esm) {
await runtime.unstable_importModule(path);
} else {
runtime.requireModule(path);
}
}
const sourcemapOptions = {
environment: 'node',
handleUncaughtExceptions: false,
retrieveSourceMap: source => {
const sourceMaps = runtime.getSourceMaps();
const sourceMapSource = sourceMaps && sourceMaps[source];
if (sourceMapSource) {
try {
return {
map: JSON.parse(fs().readFileSync(sourceMapSource, 'utf8')),
url: source
};
} catch {}
}
return null;
}
}; // For tests
runtime
.requireInternalModule(
require.resolve('source-map-support'),
'source-map-support'
)
.install(sourcemapOptions); // For runtime errors
_sourceMapSupport().default.install(sourcemapOptions);
if (
environment.global &&
environment.global.process &&
environment.global.process.exit
) {
const realExit = environment.global.process.exit;
environment.global.process.exit = function exit(...args) {
const error = new (_jestUtil().ErrorWithStack)(
`process.exit called with "${args.join(', ')}"`,
exit
);
const formattedError = (0, _jestMessageUtil().formatExecError)(
error,
config,
{
noStackTrace: false
},
undefined,
true
);
process.stderr.write(formattedError);
return realExit(...args);
};
} // if we don't have `getVmContext` on the env skip coverage
const collectV8Coverage =
globalConfig.coverageProvider === 'v8' &&
typeof environment.getVmContext === 'function';
try {
await environment.setup();
let result;
try {
if (collectV8Coverage) {
await runtime.collectV8Coverage();
}
result = await testFramework(
globalConfig,
config,
environment,
runtime,
path,
sendMessageToJest
);
} catch (err) {
// Access stack before uninstalling sourcemaps
err.stack;
throw err;
} finally {
if (collectV8Coverage) {
await runtime.stopCollectingV8Coverage();
}
}
freezeConsole(testConsole, config);
const testCount =
result.numPassingTests +
result.numFailingTests +
result.numPendingTests +
result.numTodoTests;
const end = Date.now();
const testRuntime = end - start;
result.perfStats = {
end,
runtime: testRuntime,
slow: testRuntime / 1000 > config.slowTestThreshold,
start
};
result.testFilePath = path;
result.console = testConsole.getBuffer();
result.skipped = testCount === result.numPendingTests;
result.displayName = config.displayName;
const coverage = runtime.getAllCoverageInfoCopy();
if (coverage) {
const coverageKeys = Object.keys(coverage);
if (coverageKeys.length) {
result.coverage = coverage;
}
}
if (collectV8Coverage) {
const v8Coverage = runtime.getAllV8CoverageInfoCopy();
if (v8Coverage && v8Coverage.length > 0) {
result.v8Coverage = v8Coverage;
}
}
if (globalConfig.logHeapUsage) {
if (global.gc) {
global.gc();
}
result.memoryUsage = process.memoryUsage().heapUsed;
} // Delay the resolution to allow log messages to be output.
return new Promise(resolve => {
setImmediate(() =>
resolve({
leakDetector,
result
})
);
});
} finally {
var _runtime$teardown;
await environment.teardown(); // TODO: this function might be missing, remove ? in Jest 26
(_runtime$teardown = runtime.teardown) === null ||
_runtime$teardown === void 0
? void 0
: _runtime$teardown.call(runtime);
_sourceMapSupport().default.resetRetrieveHandlers();
}
}
async function runTest(
path,
globalConfig,
config,
resolver,
context,
sendMessageToJest
) {
const {leakDetector, result} = await runTestInternal(
path,
globalConfig,
config,
resolver,
context,
sendMessageToJest
);
if (leakDetector) {
// We wanna allow a tiny but time to pass to allow last-minute cleanup
await new Promise(resolve => setTimeout(resolve, 100)); // Resolve leak detector, outside the "runTestInternal" closure.
result.leaks = await leakDetector.isLeaking();
} else {
result.leaks = false;
}
return result;
}

26
node_modules/jest-runner/build/testWorker.d.ts generated vendored Normal file
View file

@ -0,0 +1,26 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import type { Config } from '@jest/types';
import type { TestResult } from '@jest/test-result';
import HasteMap = require('jest-haste-map');
import type { TestRunnerSerializedContext } from './types';
export declare type SerializableResolver = {
config: Config.ProjectConfig;
serializableModuleMap: HasteMap.SerializableModuleMap;
};
declare type WorkerData = {
config: Config.ProjectConfig;
globalConfig: Config.GlobalConfig;
path: Config.Path;
context?: TestRunnerSerializedContext;
};
export declare function setup(setupData: {
serializableResolvers: Array<SerializableResolver>;
}): void;
export declare function worker({ config, globalConfig, path, context, }: WorkerData): Promise<TestResult>;
export {};

150
node_modules/jest-runner/build/testWorker.js generated vendored Normal file
View file

@ -0,0 +1,150 @@
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.setup = setup;
exports.worker = worker;
function _jestHasteMap() {
const data = _interopRequireDefault(require('jest-haste-map'));
_jestHasteMap = function () {
return data;
};
return data;
}
function _exit() {
const data = _interopRequireDefault(require('exit'));
_exit = function () {
return data;
};
return data;
}
function _jestMessageUtil() {
const data = require('jest-message-util');
_jestMessageUtil = function () {
return data;
};
return data;
}
function _jestRuntime() {
const data = _interopRequireDefault(require('jest-runtime'));
_jestRuntime = function () {
return data;
};
return data;
}
function _jestWorker() {
const data = require('jest-worker');
_jestWorker = function () {
return data;
};
return data;
}
var _runTest = _interopRequireDefault(require('./runTest'));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {default: obj};
}
/**
* 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.
*
*/
// Make sure uncaught errors are logged before we exit.
process.on('uncaughtException', err => {
console.error(err.stack);
(0, _exit().default)(1);
});
const formatError = error => {
if (typeof error === 'string') {
const {message, stack} = (0, _jestMessageUtil().separateMessageFromStack)(
error
);
return {
message,
stack,
type: 'Error'
};
}
return {
code: error.code || undefined,
message: error.message,
stack: error.stack,
type: 'Error'
};
};
const resolvers = new Map();
const getResolver = config => {
const resolver = resolvers.get(config.name);
if (!resolver) {
throw new Error('Cannot find resolver for: ' + config.name);
}
return resolver;
};
function setup(setupData) {
// Module maps that will be needed for the test runs are passed.
for (const {
config,
serializableModuleMap
} of setupData.serializableResolvers) {
const moduleMap = _jestHasteMap().default.ModuleMap.fromJSON(
serializableModuleMap
);
resolvers.set(
config.name,
_jestRuntime().default.createResolver(config, moduleMap)
);
}
}
const sendMessageToJest = (eventName, args) => {
(0, _jestWorker().messageParent)([eventName, args]);
};
async function worker({config, globalConfig, path, context}) {
try {
return await (0, _runTest.default)(
path,
globalConfig,
config,
getResolver(config),
context && {
...context,
changedFiles: context.changedFiles && new Set(context.changedFiles),
sourcesRelatedToTestsInChangedFiles:
context.sourcesRelatedToTestsInChangedFiles &&
new Set(context.sourcesRelatedToTestsInChangedFiles)
},
sendMessageToJest
);
} catch (error) {
throw formatError(error);
}
}

59
node_modules/jest-runner/build/types.d.ts generated vendored Normal file
View file

@ -0,0 +1,59 @@
/**
* 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.
*/
/// <reference types="node" />
import type { EventEmitter } from 'events';
import type { Config } from '@jest/types';
import type { AssertionResult, SerializableError, TestResult } from '@jest/test-result';
import type { JestEnvironment } from '@jest/environment';
import type { FS as HasteFS, ModuleMap } from 'jest-haste-map';
import type { ResolverType } from 'jest-resolve';
import type { RuntimeType } from 'jest-runtime';
export declare type ErrorWithCode = Error & {
code?: string;
};
export declare type Test = {
context: Context;
duration?: number;
path: Config.Path;
};
export declare type Context = {
config: Config.ProjectConfig;
hasteFS: HasteFS;
moduleMap: ModuleMap;
resolver: ResolverType;
};
export declare type OnTestStart = (test: Test) => Promise<void>;
export declare type OnTestFailure = (test: Test, serializableError: SerializableError) => Promise<void>;
export declare type OnTestSuccess = (test: Test, testResult: TestResult) => Promise<void>;
export declare type TestEvents = {
'test-file-start': [Test];
'test-file-success': [Test, TestResult];
'test-file-failure': [Test, SerializableError];
'test-case-result': [Config.Path, AssertionResult];
};
export declare type TestFileEvent<T extends keyof TestEvents = keyof TestEvents> = (eventName: T, args: TestEvents[T]) => unknown;
export declare type TestFramework = (globalConfig: Config.GlobalConfig, config: Config.ProjectConfig, environment: JestEnvironment, runtime: RuntimeType, testPath: string, sendMessageToJest?: TestFileEvent) => Promise<TestResult>;
export declare type TestRunnerOptions = {
serial: boolean;
};
export declare type TestRunnerContext = {
changedFiles?: Set<Config.Path>;
sourcesRelatedToTestsInChangedFiles?: Set<Config.Path>;
};
export declare type TestRunnerSerializedContext = {
changedFiles?: Array<Config.Path>;
sourcesRelatedToTestsInChangedFiles?: Array<Config.Path>;
};
export declare type WatcherState = {
interrupted: boolean;
};
export interface TestWatcher extends EventEmitter {
state: WatcherState;
setState(state: WatcherState): void;
isInterrupted(): boolean;
isWatchMode(): boolean;
}

1
node_modules/jest-runner/build/types.js generated vendored Normal file
View file

@ -0,0 +1 @@
'use strict';