mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
* [mocha] fix reporter constructor options According by https://github.com/mochajs/mocha/blob/master/lib/mocha.js#L811 * [mocha] remove unnecessary `Mocha` qualifier
2987 lines
93 KiB
TypeScript
2987 lines
93 KiB
TypeScript
// Type definitions for mocha 5.2
|
|
// Project: https://mochajs.org
|
|
// Definitions by: Kazi Manzur Rashid <https://github.com/kazimanzurrashid>
|
|
// otiai10 <https://github.com/otiai10>
|
|
// jt000 <https://github.com/jt000>
|
|
// Vadim Macagon <https://github.com/enlight>
|
|
// Andrew Bradley <https://github.com/cspotcode>
|
|
// Dmitrii Sorin <https://github.com/1999>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
// TypeScript Version: 2.1
|
|
|
|
/**
|
|
* Mocha API
|
|
*
|
|
* @see https://mochajs.org/api/mocha
|
|
*/
|
|
declare class Mocha {
|
|
private _growl;
|
|
private _reporter;
|
|
private _ui;
|
|
|
|
constructor(options?: Mocha.MochaOptions);
|
|
|
|
suite: Mocha.Suite;
|
|
files: string[];
|
|
options: Mocha.MochaInstanceOptions;
|
|
|
|
/**
|
|
* Enable or disable bailing on the first failure.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#bail
|
|
*/
|
|
bail(bail?: boolean): this;
|
|
|
|
/**
|
|
* Add test `file`.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#addFile
|
|
*/
|
|
addFile(file: string): this;
|
|
|
|
/**
|
|
* Set reporter to one of the built-in reporters.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#reporter
|
|
*/
|
|
reporter(reporter: Mocha.Reporter, reporterOptions?: any): this;
|
|
|
|
/**
|
|
* Set reporter to the provided constructor, one of the built-in reporters, or loads a reporter
|
|
* from a module path. Defaults to `"spec"`.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#reporter
|
|
*/
|
|
reporter(reporter?: string | Mocha.ReporterConstructor, reporterOptions?: any): this;
|
|
|
|
/**
|
|
* Set test UI to one of the built-in test interfaces.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#ui
|
|
*/
|
|
ui(name: Mocha.Interface): this;
|
|
|
|
/**
|
|
* Set test UI to one of the built-in test interfaces or loads a test interface from a module
|
|
* path. Defaults to `"bdd"`.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#ui
|
|
*/
|
|
ui(name?: string): this;
|
|
|
|
/**
|
|
* Escape string and add it to grep as a RegExp.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#fgrep
|
|
*/
|
|
fgrep(str: string): this;
|
|
|
|
/**
|
|
* Add regexp to grep, if `re` is a string it is escaped.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#grep
|
|
*/
|
|
grep(re: string | RegExp): this;
|
|
|
|
/**
|
|
* Invert `.grep()` matches.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#invert
|
|
*/
|
|
invert(): this;
|
|
|
|
/**
|
|
* Ignore global leaks.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#ignoreLeaks
|
|
*/
|
|
ignoreLeaks(ignore: boolean): this;
|
|
|
|
/**
|
|
* Enable global leak checking.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#checkLeaks
|
|
*/
|
|
checkLeaks(): this;
|
|
|
|
/**
|
|
* Display long stack-trace on failing
|
|
*
|
|
* @see https://mochajs.org/api/mocha#fullTrace
|
|
*/
|
|
fullTrace(): this;
|
|
|
|
/**
|
|
* Enable growl support.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#growl
|
|
*/
|
|
growl(): this;
|
|
|
|
/**
|
|
* Ignore `globals` array or string.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#globals
|
|
*/
|
|
globals(globals: string | ReadonlyArray<string>): this;
|
|
|
|
/**
|
|
* Emit color output.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#useColors
|
|
*/
|
|
useColors(colors: boolean): this;
|
|
|
|
/**
|
|
* Use inline diffs rather than +/-.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#useInlineDiffs
|
|
*/
|
|
useInlineDiffs(inlineDiffs: boolean): this;
|
|
|
|
/**
|
|
* Do not show diffs at all.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#hideDiff
|
|
*/
|
|
hideDiff(hideDiff: boolean): this;
|
|
|
|
/**
|
|
* Set the timeout in milliseconds.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#timeout
|
|
*/
|
|
timeout(timeout: string | number): this;
|
|
|
|
/**
|
|
* Set the number of times to retry failed tests.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#retries
|
|
*/
|
|
retries(n: number): this;
|
|
|
|
/**
|
|
* Set slowness threshold in milliseconds.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#slow
|
|
*/
|
|
slow(slow: string | number): this;
|
|
|
|
/**
|
|
* Enable timeouts.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#enableTimeouts
|
|
*/
|
|
enableTimeouts(enabled?: boolean): this;
|
|
|
|
/**
|
|
* Makes all tests async (accepting a callback)
|
|
*
|
|
* @see https://mochajs.org/api/mocha#asyncOnly.
|
|
*/
|
|
asyncOnly(): this;
|
|
|
|
/**
|
|
* Disable syntax highlighting (in browser).
|
|
*
|
|
* @see https://mochajs.org/api/mocha#noHighlighting
|
|
*/
|
|
noHighlighting(): this;
|
|
|
|
/**
|
|
* Enable uncaught errors to propagate (in browser).
|
|
*
|
|
* @see https://mochajs.org/api/mocha#allowUncaught
|
|
*/
|
|
allowUncaught(): boolean;
|
|
|
|
/**
|
|
* Delay root suite execution.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#delay
|
|
*/
|
|
delay(): boolean;
|
|
|
|
/**
|
|
* Tests marked only fail the suite
|
|
*
|
|
* @see https://mochajs.org/api/mocha#forbidOnly
|
|
*/
|
|
forbidOnly(): boolean;
|
|
|
|
/**
|
|
* Pending tests and tests marked skip fail the suite
|
|
*
|
|
* @see https://mochajs.org/api/mocha#forbidPending
|
|
*/
|
|
forbidPending(): boolean;
|
|
|
|
/**
|
|
* Run tests and invoke `fn()` when complete.
|
|
*
|
|
* Note that `run` relies on Node's `require` to execute
|
|
* the test interface functions and will be subject to the
|
|
* cache - if the files are already in the `require` cache,
|
|
* they will effectively be skipped. Therefore, to run tests
|
|
* multiple times or to run tests in files that are already
|
|
* in the `require` cache, make sure to clear them from the
|
|
* cache first in whichever manner best suits your needs.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#run
|
|
*/
|
|
run(fn?: (failures: number) => void): Mocha.Runner;
|
|
|
|
/**
|
|
* Load registered files.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#loadFiles
|
|
*/
|
|
protected loadFiles(fn?: () => void): void;
|
|
}
|
|
|
|
declare namespace Mocha {
|
|
namespace utils {
|
|
/**
|
|
* Compute a slug from the given `str`.
|
|
*
|
|
* @see https://mochajs.org/api/module-utils.html#.slug
|
|
*/
|
|
function slug(str: string): string;
|
|
|
|
/**
|
|
* Strip the function definition from `str`, and re-indent for pre whitespace.
|
|
*
|
|
* @see https://mochajs.org/api/module-utils.html#.clean
|
|
*/
|
|
function clean(str: string): string;
|
|
|
|
/**
|
|
* Highlight the given string of `js`.
|
|
*/
|
|
function highlight(js: string): string;
|
|
|
|
/**
|
|
* Takes some variable and asks `Object.prototype.toString()` what it thinks it is.
|
|
*/
|
|
function type(value: any): string;
|
|
|
|
/**
|
|
* Stringify `value`. Different behavior depending on type of value:
|
|
*
|
|
* - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively.
|
|
* - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes.
|
|
* - If `value` is an *empty* object, function, or array, returns `'{}'`, `'[Function]'`, or `'[]'` respectively.
|
|
* - If `value` has properties, call canonicalize} on it, then return result of `JSON.stringify()`
|
|
*
|
|
* @see https://mochajs.org/api/module-utils.html#.stringify
|
|
*/
|
|
function stringify(value: any): string;
|
|
|
|
/**
|
|
* Return a new Thing that has the keys in sorted order. Recursive.
|
|
*
|
|
* If the Thing...
|
|
* - has already been seen, return string `'[Circular]'`
|
|
* - is `undefined`, return string `'[undefined]'`
|
|
* - is `null`, return value `null`
|
|
* - is some other primitive, return the value
|
|
* - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method
|
|
* - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again.
|
|
* - is an empty `Array`, `Object`, or `Function`, returns `'[]'`, `'{}'`, or `'[Function]'` respectively.
|
|
*
|
|
* @see https://mochajs.org/api/module-utils.html#.canonicalize
|
|
*/
|
|
function canonicalize(value: any, stack: any[], typeHint: string): any;
|
|
|
|
/**
|
|
* Lookup file names at the given `path`.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.utils.html#.exports.lookupFiles
|
|
*/
|
|
function lookupFiles(filepath: string, extensions?: string[], recursive?: boolean): string[];
|
|
|
|
/**
|
|
* Generate an undefined error with a message warning the user.
|
|
*
|
|
* @see https://mochajs.org/api/module-utils.html#.undefinedError
|
|
*/
|
|
function undefinedError(): Error;
|
|
|
|
/**
|
|
* Generate an undefined error if `err` is not defined.
|
|
*
|
|
* @see https://mochajs.org/api/module-utils.html#.getError
|
|
*/
|
|
function getError(err: Error | undefined): Error;
|
|
|
|
/**
|
|
* When invoking this function you get a filter function that get the Error.stack as an
|
|
* input, and return a prettify output. (i.e: strip Mocha and internal node functions from
|
|
* stack trace).
|
|
*
|
|
* @see https://mochajs.org/api/module-utils.html#.stackTraceFilter
|
|
*/
|
|
function stackTraceFilter(): (stack: string) => string;
|
|
}
|
|
|
|
namespace interfaces {
|
|
function bdd(suite: Suite): void;
|
|
function tdd(suite: Suite): void;
|
|
function qunit(suite: Suite): void;
|
|
function exports(suite: Suite): void;
|
|
}
|
|
|
|
// #region Test interface augmentations
|
|
|
|
interface HookFunction {
|
|
/**
|
|
* [bdd, qunit, tdd] Describe a "hook" to execute the given callback `fn`. The name of the
|
|
* function is used as the name of the hook.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(fn: Func): void;
|
|
|
|
/**
|
|
* [bdd, qunit, tdd] Describe a "hook" to execute the given callback `fn`. The name of the
|
|
* function is used as the name of the hook.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(fn: AsyncFunc): void;
|
|
|
|
/**
|
|
* [bdd, qunit, tdd] Describe a "hook" to execute the given `title` and callback `fn`.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(name: string, fn?: Func): void;
|
|
|
|
/**
|
|
* [bdd, qunit, tdd] Describe a "hook" to execute the given `title` and callback `fn`.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(name: string, fn?: AsyncFunc): void;
|
|
}
|
|
|
|
interface SuiteFunction {
|
|
/**
|
|
* [bdd, tdd] Describe a "suite" with the given `title` and callback `fn` containing
|
|
* nested suites.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(title: string, fn: (this: Suite) => void): Suite;
|
|
|
|
/**
|
|
* [qunit] Describe a "suite" with the given `title`.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(title: string): Suite;
|
|
|
|
/**
|
|
* [bdd, tdd, qunit] Indicates this suite should be executed exclusively.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
only: ExclusiveSuiteFunction;
|
|
|
|
/**
|
|
* [bdd, tdd] Indicates this suite should not be executed.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
skip: PendingSuiteFunction;
|
|
}
|
|
|
|
interface ExclusiveSuiteFunction {
|
|
/**
|
|
* [bdd, tdd] Describe a "suite" with the given `title` and callback `fn` containing
|
|
* nested suites. Indicates this suite should be executed exclusively.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(title: string, fn: (this: Suite) => void): Suite;
|
|
|
|
/**
|
|
* [qunit] Describe a "suite" with the given `title`. Indicates this suite should be executed
|
|
* exclusively.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(title: string): Suite;
|
|
}
|
|
|
|
/**
|
|
* [bdd, tdd] Describe a "suite" with the given `title` and callback `fn` containing
|
|
* nested suites. Indicates this suite should not be executed.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @returns [bdd] `Suite`
|
|
* @returns [tdd] `void`
|
|
*/
|
|
interface PendingSuiteFunction {
|
|
(title: string, fn: (this: Suite) => void): Suite | void;
|
|
}
|
|
|
|
interface TestFunction {
|
|
/**
|
|
* Describe a specification or test-case with the given callback `fn` acting as a thunk.
|
|
* The name of the function is used as the name of the test.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(fn: Func): Test;
|
|
|
|
/**
|
|
* Describe a specification or test-case with the given callback `fn` acting as a thunk.
|
|
* The name of the function is used as the name of the test.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(fn: AsyncFunc): Test;
|
|
|
|
/**
|
|
* Describe a specification or test-case with the given `title` and callback `fn` acting
|
|
* as a thunk.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(title: string, fn?: Func): Test;
|
|
|
|
/**
|
|
* Describe a specification or test-case with the given `title` and callback `fn` acting
|
|
* as a thunk.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(title: string, fn?: AsyncFunc): Test;
|
|
|
|
/**
|
|
* Indicates this test should be executed exclusively.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
only: ExclusiveTestFunction;
|
|
|
|
/**
|
|
* Indicates this test should not be executed.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
skip: PendingTestFunction;
|
|
|
|
/**
|
|
* Number of attempts to retry.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
retries(n: number): void;
|
|
}
|
|
|
|
interface ExclusiveTestFunction {
|
|
/**
|
|
* [bdd, tdd, qunit] Describe a specification or test-case with the given callback `fn`
|
|
* acting as a thunk. The name of the function is used as the name of the test. Indicates
|
|
* this test should be executed exclusively.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(fn: Func): Test;
|
|
|
|
/**
|
|
* [bdd, tdd, qunit] Describe a specification or test-case with the given callback `fn`
|
|
* acting as a thunk. The name of the function is used as the name of the test. Indicates
|
|
* this test should be executed exclusively.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(fn: AsyncFunc): Test;
|
|
|
|
/**
|
|
* [bdd, tdd, qunit] Describe a specification or test-case with the given `title` and
|
|
* callback `fn` acting as a thunk. Indicates this test should be executed exclusively.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(title: string, fn?: Func): Test;
|
|
|
|
/**
|
|
* [bdd, tdd, qunit] Describe a specification or test-case with the given `title` and
|
|
* callback `fn` acting as a thunk. Indicates this test should be executed exclusively.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(title: string, fn?: AsyncFunc): Test;
|
|
}
|
|
|
|
interface PendingTestFunction {
|
|
/**
|
|
* [bdd, tdd, qunit] Describe a specification or test-case with the given callback `fn`
|
|
* acting as a thunk. The name of the function is used as the name of the test. Indicates
|
|
* this test should not be executed.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(fn: Func): Test;
|
|
|
|
/**
|
|
* [bdd, tdd, qunit] Describe a specification or test-case with the given callback `fn`
|
|
* acting as a thunk. The name of the function is used as the name of the test. Indicates
|
|
* this test should not be executed.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(fn: AsyncFunc): Test;
|
|
|
|
/**
|
|
* [bdd, tdd, qunit] Describe a specification or test-case with the given `title` and
|
|
* callback `fn` acting as a thunk. Indicates this test should not be executed.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(title: string, fn?: Func): Test;
|
|
|
|
/**
|
|
* [bdd, tdd, qunit] Describe a specification or test-case with the given `title` and
|
|
* callback `fn` acting as a thunk. Indicates this test should not be executed.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
(title: string, fn?: AsyncFunc): Test;
|
|
}
|
|
|
|
/**
|
|
* Execute after each test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#afterEach
|
|
*/
|
|
let afterEach: HookFunction;
|
|
|
|
/**
|
|
* Execute after running tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#after
|
|
*/
|
|
let after: HookFunction;
|
|
|
|
/**
|
|
* Execute before each test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#beforeEach
|
|
*/
|
|
let beforeEach: HookFunction;
|
|
|
|
/**
|
|
* Execute before running tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#before
|
|
*/
|
|
let before: HookFunction;
|
|
|
|
/**
|
|
* Describe a "suite" containing nested suites and tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
let describe: SuiteFunction;
|
|
|
|
/**
|
|
* Describes a test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
let it: TestFunction;
|
|
|
|
/**
|
|
* Describes a pending test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
let xit: PendingTestFunction;
|
|
|
|
/**
|
|
* Execute before each test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#beforeEach
|
|
*/
|
|
let setup: HookFunction;
|
|
|
|
/**
|
|
* Execute before running tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#before
|
|
*/
|
|
let suiteSetup: HookFunction;
|
|
|
|
/**
|
|
* Execute after running tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#after
|
|
*/
|
|
let suiteTeardown: HookFunction;
|
|
|
|
/**
|
|
* Describe a "suite" containing nested suites and tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
let suite: SuiteFunction;
|
|
|
|
/**
|
|
* Execute after each test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#afterEach
|
|
*/
|
|
let teardown: HookFunction;
|
|
|
|
/**
|
|
* Describes a test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
let test: TestFunction;
|
|
|
|
/**
|
|
* Triggers root suite execution.
|
|
*
|
|
* - _Only available if flag --delay is passed into Mocha._
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#runWithSuite
|
|
*/
|
|
function run(): void;
|
|
|
|
// #endregion Test interface augmentations
|
|
|
|
namespace reporters {
|
|
/**
|
|
* Initialize a new `Base` reporter.
|
|
*
|
|
* All other reporters generally inherit from this reporter, providing stats such as test duration,
|
|
* number of tests passed / failed, etc.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.Base.html
|
|
*/
|
|
class Base {
|
|
constructor(runner: Runner, options?: MochaOptions);
|
|
/** @deprecated Use the overload that accepts `Mocha.Runner` instead. */
|
|
constructor(runner: IRunner, options?: MochaOptions);
|
|
|
|
/**
|
|
* Test run statistics
|
|
*/
|
|
stats: Stats;
|
|
|
|
/**
|
|
* Test failures
|
|
*/
|
|
failures: Test[];
|
|
|
|
/**
|
|
* The configured runner
|
|
*/
|
|
runner: Runner;
|
|
|
|
/**
|
|
* Output common epilogue used by many of the bundled reporters.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.Base.html#.Base#epilogue
|
|
*/
|
|
epilogue(): void;
|
|
|
|
done?(failures: number, fn?: (failures: number) => void): void;
|
|
}
|
|
|
|
namespace Base {
|
|
/**
|
|
* Enables coloring by default
|
|
*
|
|
* @see https://mochajs.org/api/module-base#.useColors
|
|
*/
|
|
let useColors: boolean;
|
|
|
|
/**
|
|
* Inline diffs instead of +/-
|
|
*
|
|
* @see https://mochajs.org/api/module-base#.inlineDiffs
|
|
*/
|
|
let inlineDiffs: boolean;
|
|
|
|
/**
|
|
* Default color map
|
|
*
|
|
* @see https://mochajs.org/api/module-base#.colors
|
|
*/
|
|
const colors: ColorMap;
|
|
|
|
/**
|
|
* Default color map
|
|
*
|
|
* @see https://mochajs.org/api/module-base#.colors
|
|
*/
|
|
interface ColorMap {
|
|
// added by Base
|
|
pass: number;
|
|
fail: number;
|
|
"bright pass": number;
|
|
"bright fail": number;
|
|
"bright yellow": number;
|
|
pending: number;
|
|
suite: number;
|
|
"error title": number;
|
|
"error message": number;
|
|
"error stack": number;
|
|
checkmark: number;
|
|
fast: number;
|
|
medium: number;
|
|
slow: number;
|
|
green: number;
|
|
light: number;
|
|
"diff gutter": number;
|
|
"diff added": number;
|
|
"diff removed": number;
|
|
|
|
// added by Progress
|
|
progress: number;
|
|
|
|
// added by Landing
|
|
plane: number;
|
|
"plane crash": number;
|
|
runway: number;
|
|
|
|
[key: string]: number;
|
|
}
|
|
|
|
/**
|
|
* Default symbol map
|
|
*
|
|
* @see https://mochajs.org/api/module-base#.symbols
|
|
*/
|
|
const symbols: SymbolMap;
|
|
|
|
/**
|
|
* Default symbol map
|
|
*
|
|
* @see https://mochajs.org/api/module-base#.symbols
|
|
*/
|
|
interface SymbolMap {
|
|
ok: string;
|
|
err: string;
|
|
dot: string;
|
|
comma: string;
|
|
bang: string;
|
|
[key: string]: string;
|
|
}
|
|
|
|
/**
|
|
* Color `str` with the given `type` (from `colors`)
|
|
*
|
|
* @see https://mochajs.org/api/module-base#.color
|
|
*/
|
|
function color(type: string, str: string): string;
|
|
|
|
/**
|
|
* Expose terminal window size
|
|
*
|
|
* @see https://mochajs.org/api/module-base#.window
|
|
*/
|
|
const window: {
|
|
width: number;
|
|
};
|
|
|
|
/**
|
|
* ANSI TTY control sequences common among reporters.
|
|
*
|
|
* @see https://mochajs.org/api/module-base#.cursor
|
|
*/
|
|
namespace cursor {
|
|
/**
|
|
* Hides the cursor
|
|
*/
|
|
function hide(): void;
|
|
|
|
/**
|
|
* Shows the cursor
|
|
*/
|
|
function show(): void;
|
|
|
|
/**
|
|
* Deletes the current line
|
|
*/
|
|
function deleteLine(): void;
|
|
|
|
/**
|
|
* Moves to the beginning of the line
|
|
*/
|
|
function beginningOfLine(): void;
|
|
|
|
/**
|
|
* Clears the line and moves to the beginning of the line.
|
|
*/
|
|
function CR(): void;
|
|
}
|
|
|
|
/**
|
|
* Returns a diff between two strings with colored ANSI output.
|
|
*
|
|
* @see https://mochajs.org/api/module-base#.generateDiff
|
|
*/
|
|
function generateDiff(actual: string, expected: string): string;
|
|
|
|
/**
|
|
* Output the given `failures` as a list.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.Base.html#.exports.list1
|
|
*/
|
|
function list(failures: Test[]): void;
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `Dot` matrix test reporter.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.Dot.html
|
|
*/
|
|
class Dot extends Base {
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `Doc` reporter.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.Doc.html
|
|
*/
|
|
class Doc extends Base {
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `TAP` test reporter.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.TAP.html
|
|
*/
|
|
class TAP extends Base {
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `JSON` reporter
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.JSON.html
|
|
*/
|
|
class JSON extends Base {
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `HTML` reporter.
|
|
*
|
|
* - _This reporter cannot be used on the console._
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.HTML.html
|
|
*/
|
|
class HTML extends Base {
|
|
/**
|
|
* Provide suite URL.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.HTML.html#suiteURL
|
|
*/
|
|
suiteURL(suite: Suite): string;
|
|
|
|
/**
|
|
* Provide test URL.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.HTML.html#testURL
|
|
*/
|
|
testURL(test: Test): string;
|
|
|
|
/**
|
|
* Adds code toggle functionality for the provided test's list element.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.HTML.html#addCodeToggle
|
|
*/
|
|
addCodeToggle(el: HTMLLIElement, contents: string): void;
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `List` test reporter.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.List.html
|
|
*/
|
|
class List extends Base {
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `Min` minimal test reporter (best used with --watch).
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.Min.html
|
|
*/
|
|
class Min extends Base {
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `Spec` test reporter.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.Spec.html
|
|
*/
|
|
class Spec extends Base {
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `NyanCat` test reporter.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.Nyan.html
|
|
*/
|
|
class Nyan extends Base {
|
|
private colorIndex;
|
|
private numberOfLines;
|
|
private rainbowColors;
|
|
private scoreboardWidth;
|
|
private tick;
|
|
private trajectories;
|
|
private trajectoryWidthMax;
|
|
private draw;
|
|
private drawScoreboard;
|
|
private appendRainbow;
|
|
private drawRainbow;
|
|
private drawNyanCat;
|
|
private face;
|
|
private cursorUp;
|
|
private cursorDown;
|
|
private generateColors;
|
|
private rainbowify;
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `XUnit` test reporter.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.XUnit.html
|
|
*/
|
|
class XUnit extends Base {
|
|
constructor(runner: Runner, options?: XUnit.MochaOptions);
|
|
/** @deprecated Use the overload that accepts `Mocha.Runner` instead. */
|
|
constructor(runner: IRunner, options?: XUnit.MochaOptions);
|
|
|
|
/**
|
|
* Override done to close the stream (if it's a file).
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.XUnit.html#done
|
|
*/
|
|
done(failures: number, fn: (failures: number) => void): void;
|
|
|
|
/**
|
|
* Write out the given line.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.XUnit.html#write
|
|
*/
|
|
write(line: string): void;
|
|
|
|
/**
|
|
* Output tag for the given `test.`
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.XUnit.html#test
|
|
*/
|
|
test(test: Test): void;
|
|
}
|
|
|
|
namespace XUnit {
|
|
interface MochaOptions extends Mocha.MochaOptions {
|
|
reporterOptions?: ReporterOptions;
|
|
}
|
|
|
|
interface ReporterOptions {
|
|
output?: string;
|
|
suiteName?: string;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `Markdown` test reporter.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.Markdown.html
|
|
*/
|
|
class Markdown extends Base {
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `Progress` bar test reporter.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.Progress.html
|
|
*/
|
|
class Progress extends Base {
|
|
constructor(runner: Runner, options?: Progress.MochaOptions);
|
|
/** @deprecated Use the overload that accepts `Mocha.Runner` instead. */
|
|
constructor(runner: IRunner, options?: Progress.MochaOptions);
|
|
}
|
|
|
|
namespace Progress {
|
|
interface MochaOptions extends Mocha.MochaOptions {
|
|
reporterOptions?: ReporterOptions;
|
|
}
|
|
|
|
interface ReporterOptions {
|
|
open?: string;
|
|
complete?: string;
|
|
incomplete?: string;
|
|
close?: string;
|
|
verbose?: boolean;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `Landing` reporter.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.Landing.html
|
|
*/
|
|
class Landing extends Base {
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `JSONStream` test reporter.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.reporters.JSONStream.html
|
|
*/
|
|
class JSONStream extends Base {
|
|
}
|
|
|
|
// value-only aliases
|
|
const base: typeof Base;
|
|
const dot: typeof Dot;
|
|
const doc: typeof Doc;
|
|
const tap: typeof TAP;
|
|
const json: typeof JSON;
|
|
const html: typeof HTML;
|
|
const list: typeof List;
|
|
const spec: typeof Spec;
|
|
const nyan: typeof Nyan;
|
|
const xunit: typeof XUnit;
|
|
const markdown: typeof Markdown;
|
|
const progress: typeof Progress;
|
|
const landing: typeof Landing;
|
|
// NOTE: not possible to type this correctly:
|
|
// const "json-stream": typeof JSONStream;
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `Runnable` with the given `title` and callback `fn`.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html
|
|
*/
|
|
class Runnable {
|
|
private _slow;
|
|
private _enableTimeouts;
|
|
private _retries;
|
|
private _currentRetry;
|
|
private _timeout;
|
|
private _timeoutError;
|
|
|
|
constructor(title: string, fn?: Func | AsyncFunc);
|
|
|
|
title: string;
|
|
fn: Func | AsyncFunc | undefined;
|
|
body: string;
|
|
async: boolean;
|
|
sync: boolean;
|
|
timedOut: boolean;
|
|
pending: boolean;
|
|
duration?: number;
|
|
parent?: Suite;
|
|
state?: "failed" | "passed";
|
|
timer?: any;
|
|
ctx?: Context;
|
|
callback?: Done;
|
|
allowUncaught?: boolean;
|
|
file?: string;
|
|
|
|
/**
|
|
* Get test timeout.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#timeout
|
|
*/
|
|
timeout(): number;
|
|
|
|
/**
|
|
* Set test timeout.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#timeout
|
|
*/
|
|
timeout(ms: string | number): this;
|
|
|
|
/**
|
|
* Get test slowness threshold.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#slow
|
|
*/
|
|
slow(): number;
|
|
|
|
/**
|
|
* Set test slowness threshold.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#slow
|
|
*/
|
|
slow(ms: string | number): this;
|
|
|
|
/**
|
|
* Get whether timeouts are enabled.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#enableTimeouts
|
|
*/
|
|
enableTimeouts(): boolean;
|
|
|
|
/**
|
|
* Set whether timeouts are enabled.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#enableTimeouts
|
|
*/
|
|
enableTimeouts(enabled: boolean): this;
|
|
|
|
/**
|
|
* Halt and mark as pending.
|
|
*/
|
|
skip(): never;
|
|
|
|
/**
|
|
* Check if this runnable or its parent suite is marked as pending.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#isPending
|
|
*/
|
|
isPending(): boolean;
|
|
|
|
/**
|
|
* Return `true` if this Runnable has failed.
|
|
*/
|
|
isFailed(): boolean;
|
|
|
|
/**
|
|
* Return `true` if this Runnable has passed.
|
|
*/
|
|
isPassed(): boolean;
|
|
|
|
/**
|
|
* Set or get number of retries.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#retries
|
|
*/
|
|
retries(): number;
|
|
|
|
/**
|
|
* Set or get number of retries.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#retries
|
|
*/
|
|
retries(n: number): void;
|
|
|
|
/**
|
|
* Set or get current retry
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#currentRetry
|
|
*/
|
|
protected currentRetry(): number;
|
|
|
|
/**
|
|
* Set or get current retry
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#currentRetry
|
|
*/
|
|
protected currentRetry(n: number): void;
|
|
|
|
/**
|
|
* Return the full title generated by recursively concatenating the parent's full title.
|
|
*/
|
|
fullTitle(): string;
|
|
|
|
/**
|
|
* Return the title path generated by concatenating the parent's title path with the title.
|
|
*/
|
|
titlePath(): string[];
|
|
|
|
/**
|
|
* Clear the timeout.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#clearTimeout
|
|
*/
|
|
clearTimeout(): void;
|
|
|
|
/**
|
|
* Inspect the runnable void of private properties.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#inspect
|
|
*/
|
|
inspect(): string;
|
|
|
|
/**
|
|
* Reset the timeout.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#resetTimeout
|
|
*/
|
|
resetTimeout(): void;
|
|
|
|
/**
|
|
* Get a list of whitelisted globals for this test run.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#globals
|
|
*/
|
|
globals(): string[];
|
|
|
|
/**
|
|
* Set a list of whitelisted globals for this test run.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#globals
|
|
*/
|
|
globals(globals: ReadonlyArray<string>): void;
|
|
|
|
/**
|
|
* Run the test and invoke `fn(err)`.
|
|
*
|
|
* @see https://mochajs.org/api/Runnable.html#run
|
|
*/
|
|
run(fn: Done): void;
|
|
}
|
|
|
|
// #region Runnable "error" event
|
|
interface Runnable extends NodeJS.EventEmitter {
|
|
on(event: "error", listener: (error: any) => void): this;
|
|
once(event: "error", listener: (error: any) => void): this;
|
|
addListener(event: "error", listener: (error: any) => void): this;
|
|
removeListener(event: "error", listener: (error: any) => void): this;
|
|
prependListener(event: "error", listener: (error: any) => void): this;
|
|
prependOnceListener(event: "error", listener: (error: any) => void): this;
|
|
emit(name: "error", error: any): boolean;
|
|
}
|
|
// #endregion Runnable "error" event
|
|
// #region Runnable untyped events
|
|
interface Runnable extends NodeJS.EventEmitter {
|
|
on(event: string, listener: (...args: any[]) => void): this;
|
|
once(event: string, listener: (...args: any[]) => void): this;
|
|
addListener(event: string, listener: (...args: any[]) => void): this;
|
|
removeListener(event: string, listener: (...args: any[]) => void): this;
|
|
prependListener(event: string, listener: (...args: any[]) => void): this;
|
|
prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
|
emit(name: string, ...args: any[]): boolean;
|
|
}
|
|
// #endregion Runnable untyped events
|
|
|
|
/**
|
|
* Test context
|
|
*
|
|
* @see https://mochajs.org/api/module-Context.html#~Context
|
|
*/
|
|
class Context {
|
|
private _runnable;
|
|
|
|
test?: Runnable;
|
|
currentTest?: Test;
|
|
|
|
/**
|
|
* Get the context `Runnable`.
|
|
*/
|
|
runnable(): Runnable;
|
|
|
|
/**
|
|
* Set the context `Runnable`.
|
|
*/
|
|
runnable(runnable: Runnable): this;
|
|
/** @deprecated Use the overload that accepts `Mocha.Runnable` instead. */
|
|
runnable(runnable: IRunnable): this;
|
|
|
|
/**
|
|
* Get test timeout.
|
|
*/
|
|
timeout(): number;
|
|
|
|
/**
|
|
* Set test timeout.
|
|
*/
|
|
timeout(ms: string | number): this;
|
|
|
|
/**
|
|
* Get whether timeouts are enabled.
|
|
*/
|
|
enableTimeouts(): boolean;
|
|
|
|
/**
|
|
* Set whether timeouts are enabled.
|
|
*/
|
|
enableTimeouts(enabled: boolean): this;
|
|
|
|
/**
|
|
* Get test slowness threshold.
|
|
*/
|
|
slow(): number;
|
|
|
|
/**
|
|
* Set test slowness threshold.
|
|
*/
|
|
slow(ms: string | number): this;
|
|
|
|
/**
|
|
* Mark a test as skipped.
|
|
*/
|
|
skip(): never;
|
|
|
|
/**
|
|
* Get the number of allowed retries on failed tests.
|
|
*/
|
|
retries(): number;
|
|
|
|
/**
|
|
* Set the number of allowed retries on failed tests.
|
|
*/
|
|
retries(n: number): this;
|
|
|
|
[key: string]: any;
|
|
}
|
|
|
|
/**
|
|
* Initialize a `Runner` for the given `suite`.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html
|
|
*/
|
|
class Runner {
|
|
private _globals;
|
|
private _abort;
|
|
private _delay;
|
|
private _defaultGrep;
|
|
private next;
|
|
private hookErr;
|
|
private prevGlobalsLength;
|
|
private nextSuite;
|
|
|
|
constructor(suite: Suite, delay: boolean);
|
|
|
|
/** @deprecated Use the overload that accepts `Mocha.Suite` instead. */
|
|
constructor(suite: ISuite, delay: boolean);
|
|
|
|
suite: Suite;
|
|
started: boolean;
|
|
total: number;
|
|
failures: number;
|
|
asyncOnly?: boolean;
|
|
allowUncaught?: boolean;
|
|
fullStackTrace?: boolean;
|
|
forbidOnly?: boolean;
|
|
forbidPending?: boolean;
|
|
ignoreLeaks?: boolean;
|
|
test?: Test;
|
|
currentRunnable?: Runnable;
|
|
stats?: Stats; // added by reporters
|
|
|
|
/**
|
|
* Run tests with full titles matching `re`. Updates runner.total
|
|
* with number of tests matched.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#.Runner#grep
|
|
*/
|
|
grep(re: RegExp, invert: boolean): this;
|
|
|
|
/**
|
|
* Returns the number of tests matching the grep search for the
|
|
* given suite.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#.Runner#grepTotal
|
|
*/
|
|
grepTotal(suite: Suite): number;
|
|
|
|
/** @deprecated Use the overload that accepts `Mocha.Suite` instead. */
|
|
grepTotal(suite: ISuite): number;
|
|
|
|
/**
|
|
* Gets the allowed globals.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#.Runner#globals
|
|
*/
|
|
globals(): string[];
|
|
|
|
/**
|
|
* Allow the given `arr` of globals.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#.Runner#globals
|
|
*/
|
|
globals(arr: ReadonlyArray<string>): this;
|
|
|
|
/**
|
|
* Run the root suite and invoke `fn(failures)` on completion.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#.Runner#run
|
|
*/
|
|
run(fn?: (failures: number) => void): this;
|
|
|
|
/**
|
|
* Cleanly abort execution.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#.Runner#abort
|
|
*/
|
|
abort(): this;
|
|
|
|
/**
|
|
* Handle uncaught exceptions.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#uncaught
|
|
*/
|
|
uncaught(err: any): void;
|
|
|
|
/**
|
|
* Wrapper for setImmediate, process.nextTick, or browser polyfill.
|
|
*/
|
|
protected static immediately(callback: Function): void;
|
|
|
|
/**
|
|
* Return a list of global properties.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#globalProps
|
|
*/
|
|
protected globalProps(): string[];
|
|
|
|
/**
|
|
* Check for global variable leaks.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#checkGlobals
|
|
*/
|
|
protected checkGlobals(test: Test): void;
|
|
|
|
/**
|
|
* Fail the given `test`.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#fail
|
|
*/
|
|
protected fail(test: Test, err: any): void;
|
|
|
|
/**
|
|
* Fail the given `hook` with `err`.
|
|
*
|
|
* Hook failures work in the following pattern:
|
|
* - If bail, then exit
|
|
* - Failed `before` hook skips all tests in a suite and subsuites,
|
|
* but jumps to corresponding `after` hook
|
|
* - Failed `before each` hook skips remaining tests in a
|
|
* suite and jumps to corresponding `after each` hook,
|
|
* which is run only once
|
|
* - Failed `after` hook does not alter
|
|
* execution order
|
|
* - Failed `after each` hook skips remaining tests in a
|
|
* suite and subsuites, but executes other `after each`
|
|
* hooks
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#failHook
|
|
*/
|
|
protected failHook(hook: Hook, err: any): void;
|
|
|
|
/**
|
|
* Run hook `name` callbacks and then invoke `fn()`.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#hook
|
|
*/
|
|
protected hook(name: string, fn: () => void): void;
|
|
|
|
/**
|
|
* Run hook `name` for the given array of `suites`
|
|
* in order, and callback `fn(err, errSuite)`.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#hooks
|
|
*/
|
|
protected hooks(name: string, suites: Suite[], fn: (err?: any, errSuite?: Suite) => void): void;
|
|
|
|
/**
|
|
* Run hooks from the top level down.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#hookUp
|
|
*/
|
|
protected hookUp(name: string, fn: (err?: any, errSuite?: Suite) => void): void;
|
|
|
|
/**
|
|
* Run hooks from the bottom up.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#hookDown
|
|
*/
|
|
protected hookDown(name: string, fn: (err?: any, errSuite?: Suite) => void): void;
|
|
|
|
/**
|
|
* Return an array of parent Suites from closest to furthest.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#parents
|
|
*/
|
|
protected parents(): Suite[];
|
|
|
|
/**
|
|
* Run the current test and callback `fn(err)`.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#runTest
|
|
*/
|
|
protected runTest(fn: Done): any;
|
|
|
|
/**
|
|
* Run tests in the given `suite` and invoke the callback `fn()` when complete.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#runTests
|
|
*/
|
|
protected runTests(suite: Suite, fn: (errSuite?: Suite) => void): void;
|
|
|
|
/**
|
|
* Run the given `suite` and invoke the callback `fn()` when complete.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Runner.html#runSuite
|
|
*/
|
|
protected runSuite(suite: Suite, fn: (errSuite?: Suite) => void): void;
|
|
}
|
|
|
|
// #region Runner "waiting" event
|
|
interface Runner {
|
|
on(event: "waiting", listener: (rootSuite: Suite) => void): this;
|
|
once(event: "waiting", listener: (rootSuite: Suite) => void): this;
|
|
addListener(event: "waiting", listener: (rootSuite: Suite) => void): this;
|
|
removeListener(event: "waiting", listener: (rootSuite: Suite) => void): this;
|
|
prependListener(event: "waiting", listener: (rootSuite: Suite) => void): this;
|
|
prependOnceListener(event: "waiting", listener: (rootSuite: Suite) => void): this;
|
|
emit(name: "waiting", rootSuite: Suite): boolean;
|
|
}
|
|
// #endregion Runner "waiting" event
|
|
// #region Runner "start" event
|
|
interface Runner extends NodeJS.EventEmitter {
|
|
on(event: "start", listener: () => void): this;
|
|
once(event: "start", listener: () => void): this;
|
|
addListener(event: "start", listener: () => void): this;
|
|
removeListener(event: "start", listener: () => void): this;
|
|
prependListener(event: "start", listener: () => void): this;
|
|
prependOnceListener(event: "start", listener: () => void): this;
|
|
emit(name: "start"): boolean;
|
|
}
|
|
// #endregion Runner "start" event
|
|
// #region Runner "end" event
|
|
interface Runner extends NodeJS.EventEmitter {
|
|
on(event: "end", listener: () => void): this;
|
|
once(event: "end", listener: () => void): this;
|
|
addListener(event: "end", listener: () => void): this;
|
|
removeListener(event: "end", listener: () => void): this;
|
|
prependListener(event: "end", listener: () => void): this;
|
|
prependOnceListener(event: "end", listener: () => void): this;
|
|
emit(name: "end"): boolean;
|
|
}
|
|
// #endregion Runner "end" event
|
|
// #region Runner "suite" event
|
|
interface Runner extends NodeJS.EventEmitter {
|
|
on(event: "suite", listener: (suite: Suite) => void): this;
|
|
once(event: "suite", listener: (suite: Suite) => void): this;
|
|
addListener(event: "suite", listener: (suite: Suite) => void): this;
|
|
removeListener(event: "suite", listener: (suite: Suite) => void): this;
|
|
prependListener(event: "suite", listener: (suite: Suite) => void): this;
|
|
prependOnceListener(event: "suite", listener: (suite: Suite) => void): this;
|
|
emit(name: "suite", suite: Suite): boolean;
|
|
}
|
|
// #endregion Runner "suite" event
|
|
// #region Runner "suite end" event
|
|
interface Runner extends NodeJS.EventEmitter {
|
|
on(event: "suite end", listener: (suite: Suite) => void): this;
|
|
once(event: "suite end", listener: (suite: Suite) => void): this;
|
|
addListener(event: "suite end", listener: (suite: Suite) => void): this;
|
|
removeListener(event: "suite end", listener: (suite: Suite) => void): this;
|
|
prependListener(event: "suite end", listener: (suite: Suite) => void): this;
|
|
prependOnceListener(event: "suite end", listener: (suite: Suite) => void): this;
|
|
emit(name: "suite end", suite: Suite): boolean;
|
|
}
|
|
// #endregion Runner "suite end" event
|
|
// #region Runner "test" event
|
|
interface Runner extends NodeJS.EventEmitter {
|
|
on(event: "test", listener: (test: Test) => void): this;
|
|
once(event: "test", listener: (test: Test) => void): this;
|
|
addListener(event: "test", listener: (test: Test) => void): this;
|
|
removeListener(event: "test", listener: (test: Test) => void): this;
|
|
prependListener(event: "test", listener: (test: Test) => void): this;
|
|
prependOnceListener(event: "test", listener: (test: Test) => void): this;
|
|
emit(name: "test", test: Test): boolean;
|
|
}
|
|
// #endregion Runner "test" event
|
|
// #region Runner "test end" event
|
|
interface Runner extends NodeJS.EventEmitter {
|
|
on(event: "test end", listener: (test: Test) => void): this;
|
|
once(event: "test end", listener: (test: Test) => void): this;
|
|
addListener(event: "test end", listener: (test: Test) => void): this;
|
|
removeListener(event: "test end", listener: (test: Test) => void): this;
|
|
prependListener(event: "test end", listener: (test: Test) => void): this;
|
|
prependOnceListener(event: "test end", listener: (test: Test) => void): this;
|
|
emit(name: "test end", test: Test): boolean;
|
|
}
|
|
// #endregion Runner "test end" event
|
|
// #region Runner "hook" event
|
|
interface Runner extends NodeJS.EventEmitter {
|
|
on(event: "hook", listener: (hook: Hook) => void): this;
|
|
once(event: "hook", listener: (hook: Hook) => void): this;
|
|
addListener(event: "hook", listener: (hook: Hook) => void): this;
|
|
removeListener(event: "hook", listener: (hook: Hook) => void): this;
|
|
prependListener(event: "hook", listener: (hook: Hook) => void): this;
|
|
prependOnceListener(event: "hook", listener: (hook: Hook) => void): this;
|
|
emit(name: "hook", hook: Hook): boolean;
|
|
}
|
|
// #endregion Runner "hook" event
|
|
// #region Runner "hook end" event
|
|
interface Runner extends NodeJS.EventEmitter {
|
|
on(event: "hook end", listener: (hook: Hook) => void): this;
|
|
once(event: "hook end", listener: (hook: Hook) => void): this;
|
|
addListener(event: "hook end", listener: (hook: Hook) => void): this;
|
|
removeListener(event: "hook end", listener: (hook: Hook) => void): this;
|
|
prependListener(event: "hook end", listener: (hook: Hook) => void): this;
|
|
prependOnceListener(event: "hook end", listener: (hook: Hook) => void): this;
|
|
emit(name: "hook end", hook: Hook): boolean;
|
|
}
|
|
// #endregion Runner "hook end" event
|
|
// #region Runner "pass" event
|
|
interface Runner extends NodeJS.EventEmitter {
|
|
on(event: "pass", listener: (test: Test) => void): this;
|
|
once(event: "pass", listener: (test: Test) => void): this;
|
|
addListener(event: "pass", listener: (test: Test) => void): this;
|
|
removeListener(event: "pass", listener: (test: Test) => void): this;
|
|
prependListener(event: "pass", listener: (test: Test) => void): this;
|
|
prependOnceListener(event: "pass", listener: (test: Test) => void): this;
|
|
emit(name: "pass", test: Test): boolean;
|
|
}
|
|
// #endregion Runner "pass" event
|
|
// #region Runner "fail" event
|
|
interface Runner extends NodeJS.EventEmitter {
|
|
on(event: "fail", listener: (test: Test, err: any) => void): this;
|
|
once(event: "fail", listener: (test: Test, err: any) => void): this;
|
|
addListener(event: "fail", listener: (test: Test, err: any) => void): this;
|
|
removeListener(event: "fail", listener: (test: Test, err: any) => void): this;
|
|
prependListener(event: "fail", listener: (test: Test, err: any) => void): this;
|
|
prependOnceListener(event: "fail", listener: (test: Test, err: any) => void): this;
|
|
emit(name: "fail", test: Test, err: any): boolean;
|
|
}
|
|
// #endregion Runner "fail" event
|
|
// #region Runner "pending" event
|
|
interface Runner extends NodeJS.EventEmitter {
|
|
on(event: "pending", listener: (test: Test) => void): this;
|
|
once(event: "pending", listener: (test: Test) => void): this;
|
|
addListener(event: "pending", listener: (test: Test) => void): this;
|
|
removeListener(event: "pending", listener: (test: Test) => void): this;
|
|
prependListener(event: "pending", listener: (test: Test) => void): this;
|
|
prependOnceListener(event: "pending", listener: (test: Test) => void): this;
|
|
emit(name: "pending", test: Test): boolean;
|
|
}
|
|
// #endregion Runner "pending" event
|
|
// #region Runner untyped events
|
|
interface Runner extends NodeJS.EventEmitter {
|
|
on(event: string, listener: (...args: any[]) => void): this;
|
|
once(event: string, listener: (...args: any[]) => void): this;
|
|
addListener(event: string, listener: (...args: any[]) => void): this;
|
|
removeListener(event: string, listener: (...args: any[]) => void): this;
|
|
prependListener(event: string, listener: (...args: any[]) => void): this;
|
|
prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
|
emit(name: string, ...args: any[]): boolean;
|
|
}
|
|
// #endregion Runner untyped events
|
|
|
|
/**
|
|
* Initialize a new `Suite` with the given `title` and `ctx`.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html
|
|
*/
|
|
class Suite {
|
|
private _beforeEach;
|
|
private _beforeAll;
|
|
private _afterEach;
|
|
private _afterAll;
|
|
private _timeout;
|
|
private _enableTimeouts;
|
|
private _slow;
|
|
private _bail;
|
|
private _retries;
|
|
private _onlyTests;
|
|
private _onlySuites;
|
|
|
|
constructor(title: string, parentContext?: Context);
|
|
/** @deprecated Use the overload that accepts `Mocha.Context` instead. */
|
|
constructor(title: string, parentContext?: IContext);
|
|
|
|
ctx: Context;
|
|
suites: Suite[];
|
|
tests: Test[];
|
|
pending: boolean;
|
|
file?: string;
|
|
root: boolean;
|
|
delayed: boolean;
|
|
parent: Suite | undefined;
|
|
title: string;
|
|
|
|
/**
|
|
* Create a new `Suite` with the given `title` and parent `Suite`. When a suite
|
|
* with the same title is already present, that suite is returned to provide
|
|
* nicer reporter and more flexible meta-testing.
|
|
*
|
|
* @see https://mochajs.org/api/mocha#.exports.create
|
|
*/
|
|
static create(parent: Suite, title: string): Suite;
|
|
/** @deprecated Use the overload that accepts `Mocha.Suite` instead. */
|
|
static create(parent: ISuite, title: string): Suite;
|
|
|
|
/**
|
|
* Return a clone of this `Suite`.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#clone
|
|
*/
|
|
clone(): Suite;
|
|
|
|
/**
|
|
* Get timeout `ms`.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#timeout
|
|
*/
|
|
timeout(): number;
|
|
|
|
/**
|
|
* Set timeout `ms` or short-hand such as "2s".
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#timeout
|
|
*/
|
|
timeout(ms: string | number): this;
|
|
|
|
/**
|
|
* Get number of times to retry a failed test.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#retries
|
|
*/
|
|
retries(): number;
|
|
|
|
/**
|
|
* Set number of times to retry a failed test.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#retries
|
|
*/
|
|
retries(n: string | number): this;
|
|
|
|
/**
|
|
* Get whether timeouts are enabled.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#enableTimeouts
|
|
*/
|
|
enableTimeouts(): boolean;
|
|
|
|
/**
|
|
* Set whether timeouts are `enabled`.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#enableTimeouts
|
|
*/
|
|
enableTimeouts(enabled: boolean): this;
|
|
|
|
/**
|
|
* Get slow `ms`.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#slow
|
|
*/
|
|
slow(): number;
|
|
|
|
/**
|
|
* Set slow `ms` or short-hand such as "2s".
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#slow
|
|
*/
|
|
slow(ms: string | number): this;
|
|
|
|
/**
|
|
* Get whether to bail after first error.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#bail
|
|
*/
|
|
bail(): boolean;
|
|
|
|
/**
|
|
* Set whether to bail after first error.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#bail
|
|
*/
|
|
bail(bail: boolean): this;
|
|
|
|
/**
|
|
* Check if this suite or its parent suite is marked as pending.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#isPending
|
|
*/
|
|
isPending(): boolean;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` before running tests.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#beforeAll
|
|
*/
|
|
beforeAll(fn?: Func): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` before running tests.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#beforeAll
|
|
*/
|
|
beforeAll(fn?: AsyncFunc): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` before running tests.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#beforeAll
|
|
*/
|
|
beforeAll(title: string, fn?: Func): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` before running tests.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#beforeAll
|
|
*/
|
|
beforeAll(title: string, fn?: AsyncFunc): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` after running tests.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#afterAll
|
|
*/
|
|
afterAll(fn?: Func): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` after running tests.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#afterAll
|
|
*/
|
|
afterAll(fn?: AsyncFunc): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` after running tests.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#afterAll
|
|
*/
|
|
afterAll(title: string, fn?: Func): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` after running tests.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#afterAll
|
|
*/
|
|
afterAll(title: string, fn?: AsyncFunc): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` before each test case.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#beforeEach
|
|
*/
|
|
beforeEach(fn?: Func): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` before each test case.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#beforeEach
|
|
*/
|
|
beforeEach(fn?: AsyncFunc): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` before each test case.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#beforeEach
|
|
*/
|
|
beforeEach(title: string, fn?: Func): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` before each test case.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#beforeEach
|
|
*/
|
|
beforeEach(title: string, fn?: AsyncFunc): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` after each test case.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#afterEach
|
|
*/
|
|
afterEach(fn?: Func): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` after each test case.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#afterEach
|
|
*/
|
|
afterEach(fn?: AsyncFunc): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` after each test case.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#afterEach
|
|
*/
|
|
afterEach(title: string, fn?: Func): this;
|
|
|
|
/**
|
|
* Run `fn(test[, done])` after each test case.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#afterEach
|
|
*/
|
|
afterEach(title: string, fn?: AsyncFunc): this;
|
|
|
|
/**
|
|
* Add a test `suite`.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#addSuite
|
|
*/
|
|
addSuite(suite: Suite): this;
|
|
/** @deprecated Use the overload that accepts `Mocha.ISuite` instead. */
|
|
addSuite(suite: ISuite): this;
|
|
|
|
/**
|
|
* Add a `test` to this suite.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#addTest
|
|
*/
|
|
addTest(test: Test): this;
|
|
/** @deprecated Use the overload that accepts `Mocha.ITest` instead. */
|
|
addTest(test: ITest): this;
|
|
|
|
/**
|
|
* Return the full title generated by recursively concatenating the parent's
|
|
* full title.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#.Suite#fullTitle
|
|
*/
|
|
fullTitle(): string;
|
|
|
|
/**
|
|
* Return the title path generated by recursively concatenating the parent's
|
|
* title path.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#.Suite#titlePath
|
|
*/
|
|
titlePath(): string[];
|
|
|
|
/**
|
|
* Return the total number of tests.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#.Suite#total
|
|
*/
|
|
total(): number;
|
|
|
|
/**
|
|
* Iterates through each suite recursively to find all tests. Applies a
|
|
* function in the format `fn(test)`.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#eachTest
|
|
*/
|
|
eachTest(fn: (test: Test) => void): this;
|
|
|
|
/**
|
|
* This will run the root suite if we happen to be running in delayed mode.
|
|
*
|
|
* @see https://mochajs.org/api/Mocha.Suite.html#run
|
|
*/
|
|
run(): void;
|
|
|
|
/**
|
|
* Generic hook-creator.
|
|
*/
|
|
protected _createHook(title: string, fn?: Func | AsyncFunc): Hook;
|
|
}
|
|
|
|
// #region Suite "beforeAll" event
|
|
interface Suite extends NodeJS.EventEmitter {
|
|
on(event: "beforeAll", listener: (hook: Hook) => void): this;
|
|
once(event: "beforeAll", listener: (hook: Hook) => void): this;
|
|
addListener(event: "beforeAll", listener: (hook: Hook) => void): this;
|
|
removeListener(event: "beforeAll", listener: (hook: Hook) => void): this;
|
|
prependListener(event: "beforeAll", listener: (hook: Hook) => void): this;
|
|
prependOnceListener(event: "beforeAll", listener: (hook: Hook) => void): this;
|
|
emit(name: "beforeAll", hook: Hook): boolean;
|
|
}
|
|
// #endregion Suite "beforeAll" event
|
|
// #region Suite "afterAll" event
|
|
interface Suite extends NodeJS.EventEmitter {
|
|
on(event: "afterAll", listener: (hook: Hook) => void): this;
|
|
once(event: "afterAll", listener: (hook: Hook) => void): this;
|
|
addListener(event: "afterAll", listener: (hook: Hook) => void): this;
|
|
removeListener(event: "afterAll", listener: (hook: Hook) => void): this;
|
|
prependListener(event: "afterAll", listener: (hook: Hook) => void): this;
|
|
prependOnceListener(event: "afterAll", listener: (hook: Hook) => void): this;
|
|
emit(name: "afterAll", hook: Hook): boolean;
|
|
}
|
|
// #endregion Suite "afterAll" event
|
|
// #region Suite "beforeEach" event
|
|
interface Suite extends NodeJS.EventEmitter {
|
|
on(event: "beforeEach", listener: (hook: Hook) => void): this;
|
|
once(event: "beforeEach", listener: (hook: Hook) => void): this;
|
|
addListener(event: "beforeEach", listener: (hook: Hook) => void): this;
|
|
removeListener(event: "beforeEach", listener: (hook: Hook) => void): this;
|
|
prependListener(event: "beforeEach", listener: (hook: Hook) => void): this;
|
|
prependOnceListener(event: "beforeEach", listener: (hook: Hook) => void): this;
|
|
emit(name: "beforeEach", hook: Hook): boolean;
|
|
}
|
|
// #endregion Suite "beforeEach" event
|
|
// #region Suite "afterEach" event
|
|
interface Suite extends NodeJS.EventEmitter {
|
|
on(event: "afterEach", listener: (hook: Hook) => void): this;
|
|
once(event: "afterEach", listener: (hook: Hook) => void): this;
|
|
addListener(event: "afterEach", listener: (hook: Hook) => void): this;
|
|
removeListener(event: "afterEach", listener: (hook: Hook) => void): this;
|
|
prependListener(event: "afterEach", listener: (hook: Hook) => void): this;
|
|
prependOnceListener(event: "afterEach", listener: (hook: Hook) => void): this;
|
|
emit(name: "afterEach", hook: Hook): boolean;
|
|
}
|
|
// #endregion Suite "afterEach" event
|
|
// #region Suite "suite" event
|
|
interface Suite extends NodeJS.EventEmitter {
|
|
on(event: "suite", listener: (suite: Suite) => void): this;
|
|
once(event: "suite", listener: (suite: Suite) => void): this;
|
|
addListener(event: "suite", listener: (suite: Suite) => void): this;
|
|
removeListener(event: "suite", listener: (suite: Suite) => void): this;
|
|
prependListener(event: "suite", listener: (suite: Suite) => void): this;
|
|
prependOnceListener(event: "suite", listener: (suite: Suite) => void): this;
|
|
emit(name: "suite", suite: Suite): boolean;
|
|
}
|
|
// #endregion Suite "suite" event
|
|
// #region Suite "test" event
|
|
interface Suite {
|
|
on(event: "test", listener: (test: Test) => void): this;
|
|
once(event: "test", listener: (test: Test) => void): this;
|
|
addListener(event: "test", listener: (test: Test) => void): this;
|
|
removeListener(event: "test", listener: (test: Test) => void): this;
|
|
prependListener(event: "test", listener: (test: Test) => void): this;
|
|
prependOnceListener(event: "test", listener: (test: Test) => void): this;
|
|
emit(name: "test", test: Test): boolean;
|
|
}
|
|
// #endregion Suite "test" event
|
|
// #region Suite "run" event
|
|
interface Suite extends NodeJS.EventEmitter {
|
|
on(event: "run", listener: () => void): this;
|
|
once(event: "run", listener: () => void): this;
|
|
addListener(event: "run", listener: () => void): this;
|
|
removeListener(event: "run", listener: () => void): this;
|
|
prependListener(event: "run", listener: () => void): this;
|
|
prependOnceListener(event: "run", listener: () => void): this;
|
|
emit(name: "run"): boolean;
|
|
}
|
|
// #endregion Suite "run" event
|
|
// #region Suite "pre-require" event
|
|
interface Suite extends NodeJS.EventEmitter {
|
|
on(event: "pre-require", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;
|
|
once(event: "pre-require", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;
|
|
addListener(event: "pre-require", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;
|
|
removeListener(event: "pre-require", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;
|
|
prependListener(event: "pre-require", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;
|
|
prependOnceListener(event: "pre-require", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;
|
|
emit(name: "pre-require", context: MochaGlobals, file: string, mocha: Mocha): boolean;
|
|
}
|
|
// #endregion Suite "pre-require" event
|
|
// #region Suite "require" event
|
|
interface Suite extends NodeJS.EventEmitter {
|
|
on(event: "require", listener: (module: any, file: string, mocha: Mocha) => void): this;
|
|
once(event: "require", listener: (module: any, file: string, mocha: Mocha) => void): this;
|
|
addListener(event: "require", listener: (module: any, file: string, mocha: Mocha) => void): this;
|
|
removeListener(event: "require", listener: (module: any, file: string, mocha: Mocha) => void): this;
|
|
prependListener(event: "require", listener: (module: any, file: string, mocha: Mocha) => void): this;
|
|
prependOnceListener(event: "require", listener: (module: any, file: string, mocha: Mocha) => void): this;
|
|
emit(name: "require", module: any, file: string, mocha: Mocha): boolean;
|
|
}
|
|
// #endregion Suite "require" event
|
|
// #region Suite "post-require" event
|
|
interface Suite extends NodeJS.EventEmitter {
|
|
on(event: "post-require", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;
|
|
once(event: "post-require", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;
|
|
addListener(event: "post-require", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;
|
|
removeListener(event: "post-require", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;
|
|
prependListener(event: "post-require", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;
|
|
prependOnceListener(event: "post-require", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;
|
|
emit(name: "post-require", context: MochaGlobals, file: string, mocha: Mocha): boolean;
|
|
}
|
|
// #endregion Suite "post-require" event
|
|
// #region Suite untyped events
|
|
interface Suite extends NodeJS.EventEmitter {
|
|
on(event: string, listener: (...args: any[]) => void): this;
|
|
once(event: string, listener: (...args: any[]) => void): this;
|
|
addListener(event: string, listener: (...args: any[]) => void): this;
|
|
removeListener(event: string, listener: (...args: any[]) => void): this;
|
|
prependListener(event: string, listener: (...args: any[]) => void): this;
|
|
prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
|
emit(name: string, ...args: any[]): boolean;
|
|
}
|
|
// #endregion Runner untyped events
|
|
|
|
/**
|
|
* Initialize a new `Hook` with the given `title` and callback `fn`
|
|
*
|
|
* @see https://mochajs.org/api/Hook.html
|
|
*/
|
|
class Hook extends Runnable {
|
|
private _error;
|
|
|
|
type: "hook";
|
|
originalTitle?: string; // added by Runner
|
|
|
|
/**
|
|
* Get the test `err`.
|
|
*
|
|
* @see https://mochajs.org/api/Hook.html#error
|
|
*/
|
|
error(): any;
|
|
|
|
/**
|
|
* Set the test `err`.
|
|
*
|
|
* @see https://mochajs.org/api/Hook.html#error
|
|
*/
|
|
error(err: any): void;
|
|
}
|
|
|
|
/**
|
|
* Initialize a new `Test` with the given `title` and callback `fn`.
|
|
*
|
|
* @see https://mochajs.org/api/Test.html
|
|
*/
|
|
class Test extends Runnable {
|
|
type: "test";
|
|
speed?: "slow" | "medium" | "fast"; // added by reporters
|
|
err?: Error; // added by reporters
|
|
clone(): Test;
|
|
}
|
|
|
|
/**
|
|
* Test statistics
|
|
*/
|
|
interface Stats {
|
|
suites: number;
|
|
tests: number;
|
|
passes: number;
|
|
pending: number;
|
|
failures: number;
|
|
start?: Date;
|
|
end?: Date;
|
|
duration?: number;
|
|
}
|
|
|
|
type TestInterface = (suite: Suite) => void;
|
|
|
|
interface ReporterConstructor {
|
|
new (runner: Runner, options: MochaOptions): reporters.Base;
|
|
}
|
|
|
|
type Done = (err?: any) => void;
|
|
|
|
/**
|
|
* Callback function used for tests and hooks.
|
|
*/
|
|
type Func = (this: Context, done: Done) => void;
|
|
|
|
/**
|
|
* Async callback function used for tests and hooks.
|
|
*/
|
|
type AsyncFunc = (this: Context) => PromiseLike<any>;
|
|
|
|
/**
|
|
* Options to pass to Mocha.
|
|
*/
|
|
interface MochaOptions {
|
|
/** Test interfaces ("bdd", "tdd", "exports", etc.). */
|
|
ui?: Interface;
|
|
|
|
/**
|
|
* Reporter constructor, built-in reporter name, or reporter module path. Defaults to
|
|
* `"spec"`.
|
|
*/
|
|
reporter?: string | ReporterConstructor;
|
|
|
|
/** Options to pass to the reporter. */
|
|
reporterOptions?: any;
|
|
|
|
/** Array of accepted globals. */
|
|
globals?: string[];
|
|
|
|
/** timeout in milliseconds. */
|
|
timeout?: number;
|
|
|
|
enableTimeouts?: boolean;
|
|
|
|
/** number of times to retry failed tests. */
|
|
retries?: number;
|
|
|
|
/** bail on the first test failure. */
|
|
bail?: boolean;
|
|
|
|
/** milliseconds to wait before considering a test slow. */
|
|
slow?: number;
|
|
|
|
/** ignore global leaks. */
|
|
ignoreLeaks?: boolean;
|
|
|
|
/** display the full stack trace on failure. */
|
|
fullStackTrace?: boolean;
|
|
|
|
/** string or regexp to filter tests with. */
|
|
grep?: string | RegExp;
|
|
|
|
/** Enable growl support. */
|
|
growl?: boolean;
|
|
|
|
/** Emit color output. */
|
|
useColors?: boolean;
|
|
|
|
/** Use inline diffs rather than +/-. */
|
|
inlineDiffs?: boolean;
|
|
|
|
/** Do not show diffs at all. */
|
|
hideDiff?: boolean;
|
|
|
|
asyncOnly?: boolean;
|
|
delay?: boolean;
|
|
forbidOnly?: boolean;
|
|
forbidPending?: boolean;
|
|
noHighlighting?: boolean;
|
|
allowUncaught?: boolean;
|
|
}
|
|
|
|
interface MochaInstanceOptions extends MochaOptions {
|
|
files?: string[];
|
|
}
|
|
|
|
/**
|
|
* Variables added to the global scope by Mocha when run in the CLI.
|
|
*/
|
|
interface MochaGlobals {
|
|
/**
|
|
* Execute before running tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#before
|
|
*/
|
|
before: HookFunction;
|
|
|
|
/**
|
|
* Execute after running tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#after
|
|
*/
|
|
after: HookFunction;
|
|
|
|
/**
|
|
* Execute before each test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#beforeEach
|
|
*/
|
|
beforeEach: HookFunction;
|
|
|
|
/**
|
|
* Execute after each test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#afterEach
|
|
*/
|
|
afterEach: HookFunction;
|
|
|
|
/**
|
|
* Describe a "suite" containing nested suites and tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
describe: SuiteFunction;
|
|
|
|
/**
|
|
* Describe a "suite" containing nested suites and tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
context: SuiteFunction;
|
|
|
|
/**
|
|
* Pending suite.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
xdescribe: PendingSuiteFunction;
|
|
|
|
/**
|
|
* Pending suite.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
xcontext: PendingSuiteFunction;
|
|
|
|
/**
|
|
* Describes a test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
it: TestFunction;
|
|
|
|
/**
|
|
* Describes a test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
specify: TestFunction;
|
|
|
|
/**
|
|
* Describes a pending test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
xit: PendingTestFunction;
|
|
|
|
/**
|
|
* Describes a pending test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
xspecify: PendingTestFunction;
|
|
|
|
/**
|
|
* Execute before running tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#before
|
|
*/
|
|
suiteSetup: HookFunction;
|
|
|
|
/**
|
|
* Execute after running tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#after
|
|
*/
|
|
suiteTeardown: HookFunction;
|
|
|
|
/**
|
|
* Execute before each test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#beforeEach
|
|
*/
|
|
setup: HookFunction;
|
|
|
|
/**
|
|
* Execute after each test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#afterEach
|
|
*/
|
|
teardown: HookFunction;
|
|
|
|
/**
|
|
* Describe a "suite" containing nested suites and tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
suite: SuiteFunction;
|
|
|
|
/**
|
|
* Describes a test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
test: TestFunction;
|
|
|
|
run: typeof run;
|
|
}
|
|
|
|
/**
|
|
* Third-party declarations that want to add new entries to the `Reporter` union can
|
|
* contribute names here.
|
|
*/
|
|
interface ReporterContributions {
|
|
Base: never;
|
|
base: never;
|
|
Dot: never;
|
|
dot: never;
|
|
TAP: never;
|
|
tap: never;
|
|
JSON: never;
|
|
json: never;
|
|
HTML: never;
|
|
html: never;
|
|
List: never;
|
|
list: never;
|
|
Min: never;
|
|
min: never;
|
|
Spec: never;
|
|
spec: never;
|
|
Nyan: never;
|
|
nyan: never;
|
|
XUnit: never;
|
|
xunit: never;
|
|
Markdown: never;
|
|
markdown: never;
|
|
Progress: never;
|
|
progress: never;
|
|
Landing: never;
|
|
landing: never;
|
|
JSONStream: never;
|
|
"json-stream": never;
|
|
}
|
|
|
|
type Reporter = keyof ReporterContributions;
|
|
|
|
/**
|
|
* Third-party declarations that want to add new entries to the `Interface` union can
|
|
* contribute names here.
|
|
*/
|
|
interface InterfaceContributions {
|
|
bdd: never;
|
|
tdd: never;
|
|
qunit: never;
|
|
exports: never;
|
|
}
|
|
|
|
type Interface = keyof InterfaceContributions;
|
|
|
|
// #region Deprecations
|
|
|
|
/** @deprecated use `Mocha.Context` instead. */
|
|
interface IContext {
|
|
test?: IRunnable;
|
|
runnable(): IRunnable | undefined;
|
|
/** @deprecated `.runnable()` returns `this` in `Mocha.Context`. */
|
|
runnable(runnable: IRunnable): IContext;
|
|
timeout(): number;
|
|
/** @deprecated `.timeout()` returns `this` in `Mocha.Context`. */
|
|
timeout(timeout: number): IContext;
|
|
/** @deprecated `.enableTimeouts()` has additional overloads in `Mocha.Context`. */
|
|
/** @deprecated `.enableTimeouts()` returns `this` in `Mocha.Context`. */
|
|
enableTimeouts(enableTimeouts: boolean): IContext;
|
|
/** @deprecated `.slow()` has additional overloads in `Mocha.Context`. */
|
|
/** @deprecated `.slow()` returns `this` in `Mocha.Context`. */
|
|
slow(slow: number): IContext;
|
|
/** @deprecated `.skip()` returns `never` in `Mocha.Context`. */
|
|
skip(): IContext;
|
|
retries(): number;
|
|
/** @deprecated `.retries()` returns `this` in `Mocha.Context`. */
|
|
retries(retries: number): IContext;
|
|
}
|
|
|
|
/** @deprecated use `Mocha.Suite` instead. */
|
|
interface ISuiteCallbackContext {
|
|
/** @deprecated `.timeout()` has additional overloads in `Mocha.Suite`. */
|
|
timeout(ms: number | string): this;
|
|
/** @deprecated `.retries()` has additional overloads in `Mocha.Suite`. */
|
|
retries(n: number): this;
|
|
/** @deprecated `.slow()` has additional overloads in `Mocha.Suite`. */
|
|
slow(ms: number): this;
|
|
}
|
|
|
|
/** @deprecated use `Mocha.Context` instead. */
|
|
interface IHookCallbackContext {
|
|
/** @deprecated `.skip()` returns `never` in `Mocha.Context`. */
|
|
skip(): this;
|
|
/** @deprecated `.timeout()` has additional overloads in `Mocha.Context`. */
|
|
timeout(ms: number | string): this;
|
|
[index: string]: any;
|
|
}
|
|
|
|
/** @deprecated use `Mocha.Context` instead. */
|
|
interface ITestCallbackContext {
|
|
/** @deprecated `.skip()` returns `never` in `Mocha.Context`. */
|
|
skip(): this;
|
|
/** @deprecated `.timeout()` has additional overloads in `Mocha.Context`. */
|
|
timeout(ms: number | string): this;
|
|
/** @deprecated `.retries()` has additional overloads in `Mocha.Context`. */
|
|
retries(n: number): this;
|
|
/** @deprecated `.slow()` has additional overloads in `Mocha.Context`. */
|
|
slow(ms: number): this;
|
|
[index: string]: any;
|
|
}
|
|
|
|
/** Partial interface for Mocha's `Runnable` class. */
|
|
/** @deprecated use `Mocha.Runnable` instead. */
|
|
interface IRunnable extends NodeJS.EventEmitter {
|
|
title: string;
|
|
/** @deprecated `.fn` has type `Func | AsyncFunc` in `Mocha.Runnable`. */
|
|
fn: Function | undefined;
|
|
async: boolean;
|
|
sync: boolean;
|
|
timedOut: boolean;
|
|
/** @deprecated `.timeout()` has additional overloads in `Mocha.Runnable`. */
|
|
timeout(n: number | string): this;
|
|
duration?: number;
|
|
}
|
|
|
|
/** Partial interface for Mocha's `Suite` class. */
|
|
/** @deprecated use `Mocha.Suite` instead. */
|
|
interface ISuite {
|
|
/** @deprecated `.ctx` has type `Mocha.Context` in `Mocha.Suite`. */
|
|
ctx: IContext;
|
|
/** @deprecated `.parent` has type `Mocha.Suite | undefined` in `Mocha.Suite`. */
|
|
parent: ISuite | undefined;
|
|
root: boolean;
|
|
title: string;
|
|
/** @deprecated `.suites` has type `Mocha.Suite[]` in `Mocha.Suite`. */
|
|
suites: ISuite[];
|
|
/** @deprecated `.tests` has type `Mocha.Test[]` in `Mocha.Suite`. */
|
|
tests: ITest[];
|
|
|
|
bail(): boolean;
|
|
/** @deprecated `.bail()` returns `this` in `Mocha.Suite`. */
|
|
bail(bail: boolean): ISuite;
|
|
fullTitle(): string;
|
|
retries(): number;
|
|
/** @deprecated `.retries()` returns `this` in `Mocha.Suite`. */
|
|
retries(retries: number): ISuite;
|
|
slow(): number;
|
|
/** @deprecated `.slow()` returns `this` in `Mocha.Suite`. */
|
|
slow(slow: number): ISuite;
|
|
timeout(): number;
|
|
/** @deprecated `.timeout()` returns `this` in `Mocha.Suite`. */
|
|
timeout(timeout: number): ISuite;
|
|
}
|
|
|
|
/** Partial interface for Mocha's `Test` class. */
|
|
/** @deprecated use `Mocha.Test` instead. */
|
|
interface ITest extends IRunnable {
|
|
body?: string;
|
|
file?: string;
|
|
/** @deprecated `.parent` has type `Mocha.Suite | undefined` in `Mocha.Test`. */
|
|
parent?: ISuite;
|
|
pending: boolean;
|
|
state?: 'failed' | 'passed';
|
|
type: 'test';
|
|
fullTitle(): string;
|
|
}
|
|
|
|
/** @deprecated use `Mocha.Hook` instead. */
|
|
interface IHook extends IRunnable {
|
|
/** @deprecated `.ctx` has type `Mocha.Context` in `Mocha.Runnable`. */
|
|
ctx?: IContext;
|
|
/** @deprecated `.parent` has type `Mocha.Suite` in `Mocha.Runnable`. */
|
|
parent?: ISuite;
|
|
type: 'hook';
|
|
/** @deprecated `.error()` has additional overloads in `Mocha.Hook`. */
|
|
error(err: Error): void;
|
|
}
|
|
|
|
/** @deprecated use `Mocha.Context` instead. */
|
|
interface IBeforeAndAfterContext extends IHookCallbackContext {
|
|
/** @deprecated `.currentTest` has type `Mocha.Test` in `Mocha.Context`. */
|
|
currentTest?: ITest;
|
|
}
|
|
|
|
/** @deprecated use `Mocha.Stats` instead. */
|
|
type IStats = Stats;
|
|
|
|
/** Partial interface for Mocha's `Runner` class. */
|
|
/** @deprecated use `Mocha.Runner` instead. */
|
|
interface IRunner extends NodeJS.EventEmitter {
|
|
asyncOnly?: boolean;
|
|
stats?: IStats;
|
|
started: boolean;
|
|
/** @deprecated `.suite` has type `Mocha.Suite` in `Mocha.Runner`. */
|
|
suite: ISuite;
|
|
total: number;
|
|
failures: number;
|
|
forbidOnly?: boolean;
|
|
forbidPending?: boolean;
|
|
fullStackTrace?: boolean;
|
|
ignoreLeaks?: boolean;
|
|
grep(re: RegExp, invert: boolean): this;
|
|
/** @deprecated Parameter `suite` has type `Mocha.Suite` in `Mocha.Runner`. */
|
|
grepTotal(suite: ISuite): number;
|
|
/** @deprecated `.globals()` has different overloads in `Mocha.Runner`. */
|
|
globals(arr: ReadonlyArray<string>): this | string[];
|
|
abort(): this;
|
|
run(fn?: (failures: number) => void): this;
|
|
}
|
|
|
|
/** @deprecated use `Mocha.SuiteFunction` instead. */
|
|
interface IContextDefinition {
|
|
/** @deprecated use `Mocha.SuiteFunction` instead. */
|
|
(description: string, callback: (this: ISuiteCallbackContext) => void): ISuite;
|
|
/** @deprecated use `Mocha.SuiteFunction` instead. */
|
|
only(description: string, callback: (this: ISuiteCallbackContext) => void): ISuite;
|
|
/** @deprecated use `Mocha.SuiteFunction` instead. */
|
|
skip(description: string, callback: (this: ISuiteCallbackContext) => void): void;
|
|
}
|
|
|
|
/** @deprecated use `Mocha.TestFunction` instead. */
|
|
interface ITestDefinition {
|
|
/** @deprecated use `Mocha.TestFunction` instead. */
|
|
/** @deprecated `Mocha.TestFunction` does not allow mixing `done` with a return type of `PromiseLike<any>`. */
|
|
(expectation: string, callback?: (this: ITestCallbackContext, done: MochaDone) => PromiseLike<any> | void): ITest;
|
|
/** @deprecated use `Mocha.TestFunction` instead. */
|
|
/** @deprecated `Mocha.TestFunction#only` does not allow mixing `done` with a return type of `PromiseLike<any>`. */
|
|
only(expectation: string, callback?: (this: ITestCallbackContext, done: MochaDone) => PromiseLike<any> | void): ITest;
|
|
/** @deprecated use `Mocha.TestFunction` instead. */
|
|
/** @deprecated `Mocha.TestFunction#skip` does not allow mixing `done` with a return type of `PromiseLike<any>`. */
|
|
skip(expectation: string, callback?: (this: ITestCallbackContext, done: MochaDone) => PromiseLike<any> | void): void;
|
|
}
|
|
|
|
// #endregion
|
|
}
|
|
|
|
// #region Test interface augmentations
|
|
|
|
/**
|
|
* Triggers root suite execution.
|
|
*
|
|
* - _Only available if flag --delay is passed into Mocha._
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#runWithSuite
|
|
*/
|
|
declare function run(): void;
|
|
|
|
/**
|
|
* Execute before running tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#before
|
|
*/
|
|
declare var before: Mocha.HookFunction;
|
|
|
|
/**
|
|
* Execute before running tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#before
|
|
*/
|
|
declare var suiteSetup: Mocha.HookFunction;
|
|
|
|
/**
|
|
* Execute after running tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#after
|
|
*/
|
|
declare var after: Mocha.HookFunction;
|
|
|
|
/**
|
|
* Execute after running tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#after
|
|
*/
|
|
declare var suiteTeardown: Mocha.HookFunction;
|
|
|
|
/**
|
|
* Execute before each test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#beforeEach
|
|
*/
|
|
declare var beforeEach: Mocha.HookFunction;
|
|
|
|
/**
|
|
* Execute before each test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#beforeEach
|
|
*/
|
|
declare var setup: Mocha.HookFunction;
|
|
|
|
/**
|
|
* Execute after each test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#afterEach
|
|
*/
|
|
declare var afterEach: Mocha.HookFunction;
|
|
|
|
/**
|
|
* Execute after each test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*
|
|
* @see https://mochajs.org/api/global.html#afterEach
|
|
*/
|
|
declare var teardown: Mocha.HookFunction;
|
|
|
|
/**
|
|
* Describe a "suite" containing nested suites and tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
declare var describe: Mocha.SuiteFunction;
|
|
|
|
/**
|
|
* Describe a "suite" containing nested suites and tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
declare var context: Mocha.SuiteFunction;
|
|
|
|
/**
|
|
* Describe a "suite" containing nested suites and tests.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
declare var suite: Mocha.SuiteFunction;
|
|
|
|
/**
|
|
* Pending suite.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
declare var xdescribe: Mocha.PendingSuiteFunction;
|
|
|
|
/**
|
|
* Pending suite.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
declare var xcontext: Mocha.PendingSuiteFunction;
|
|
|
|
/**
|
|
* Describes a test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
declare var it: Mocha.TestFunction;
|
|
|
|
/**
|
|
* Describes a test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
declare var specify: Mocha.TestFunction;
|
|
|
|
/**
|
|
* Describes a test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
declare var test: Mocha.TestFunction;
|
|
|
|
/**
|
|
* Describes a pending test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
declare var xit: Mocha.PendingTestFunction;
|
|
|
|
/**
|
|
* Describes a pending test case.
|
|
*
|
|
* - _Only available when invoked via the mocha CLI._
|
|
*/
|
|
declare var xspecify: Mocha.PendingTestFunction;
|
|
|
|
// #endregion Test interface augmentations
|
|
|
|
// #region Reporter augmentations
|
|
|
|
// Forward declaration for `HTMLLIElement` from lib.dom.d.ts.
|
|
// Required by Mocha.reporters.HTML.
|
|
// NOTE: Mocha *must not* have a direct dependency on DOM types.
|
|
// tslint:disable-next-line no-empty-interface
|
|
interface HTMLLIElement { }
|
|
|
|
// Augments the DOM `Window` object when lib.dom.d.ts is loaded.
|
|
// tslint:disable-next-line no-empty-interface
|
|
interface Window extends Mocha.MochaGlobals { }
|
|
|
|
declare namespace NodeJS {
|
|
// Forward declaration for `NodeJS.EventEmitter` from node.d.ts.
|
|
// Required by Mocha.Runnable, Mocha.Runner, and Mocha.Suite.
|
|
// NOTE: Mocha *must not* have a direct dependency on @types/node.
|
|
// tslint:disable-next-line no-empty-interface
|
|
interface EventEmitter { }
|
|
|
|
// Augments NodeJS's `global` object when node.d.ts is loaded
|
|
// tslint:disable-next-line no-empty-interface
|
|
interface Global extends Mocha.MochaGlobals { }
|
|
}
|
|
|
|
// #endregion Reporter augmentations
|
|
|
|
// #region Browser augmentations
|
|
|
|
/**
|
|
* Mocha global.
|
|
*
|
|
* - _Only supported in the browser._
|
|
*/
|
|
declare const mocha: BrowserMocha;
|
|
|
|
interface BrowserMocha extends Mocha {
|
|
/**
|
|
* Function to allow assertion libraries to throw errors directly into mocha.
|
|
* This is useful when running tests in a browser because window.onerror will
|
|
* only receive the 'message' attribute of the Error.
|
|
*
|
|
* - _Only supported in the browser._
|
|
*/
|
|
throwError(err: any): never;
|
|
|
|
/**
|
|
* Setup mocha with the given settings options.
|
|
*
|
|
* - _Only supported in the browser._
|
|
*/
|
|
setup(opts?: Mocha.Interface | MochaSetupOptions): this;
|
|
}
|
|
|
|
/**
|
|
* Options to pass to `mocha.setup` in the browser.
|
|
*/
|
|
interface MochaSetupOptions extends Mocha.MochaOptions {
|
|
/** @deprecated This is not used by Mocha. Use `files` instead. */
|
|
require?: string[];
|
|
fullTrace?: boolean;
|
|
}
|
|
|
|
// #endregion Browser augmentations
|
|
|
|
// #region Deprecations
|
|
|
|
/** @deprecated use `Mocha.Done` instead. */
|
|
type MochaDone = Mocha.Done;
|
|
|
|
/** @deprecated use `Mocha.ReporterConstructor` instead. */
|
|
type ReporterConstructor = Mocha.ReporterConstructor;
|
|
|
|
// #endregion Deprecations
|
|
|
|
declare module "mocha" {
|
|
export = Mocha;
|
|
}
|
|
|
|
declare module "mocha/lib/ms" {
|
|
export = milliseconds;
|
|
/**
|
|
* Parse the given `str` and return milliseconds.
|
|
*
|
|
* @see {@link https://mochajs.org/api/module-milliseconds.html}
|
|
* @see {@link https://mochajs.org/api/module-milliseconds.html#~parse}
|
|
*/
|
|
function milliseconds(val: string): number;
|
|
|
|
/**
|
|
* Format for `ms`.
|
|
*
|
|
* @see {@link https://mochajs.org/api/module-milliseconds.html}
|
|
* @see {@link https://mochajs.org/api/module-milliseconds.html#~format}
|
|
*/
|
|
function milliseconds(val: number): string;
|
|
}
|
|
|
|
declare module "mocha/lib/interfaces/common" {
|
|
export = common;
|
|
|
|
function common(suites: Mocha.Suite[], context: Mocha.MochaGlobals, mocha: Mocha): common.CommonFunctions;
|
|
|
|
namespace common {
|
|
interface CommonFunctions {
|
|
/**
|
|
* This is only present if flag --delay is passed into Mocha. It triggers
|
|
* root suite execution.
|
|
*/
|
|
runWithSuite(suite: Mocha.Suite): () => void;
|
|
|
|
/**
|
|
* Execute before running tests.
|
|
*/
|
|
before(fn?: Mocha.Func | Mocha.AsyncFunc): void;
|
|
|
|
/**
|
|
* Execute before running tests.
|
|
*/
|
|
before(name: string, fn?: Mocha.Func | Mocha.AsyncFunc): void;
|
|
|
|
/**
|
|
* Execute after running tests.
|
|
*/
|
|
after(fn?: Mocha.Func | Mocha.AsyncFunc): void;
|
|
|
|
/**
|
|
* Execute after running tests.
|
|
*/
|
|
after(name: string, fn?: Mocha.Func | Mocha.AsyncFunc): void;
|
|
|
|
/**
|
|
* Execute before each test case.
|
|
*/
|
|
beforeEach(fn?: Mocha.Func | Mocha.AsyncFunc): void;
|
|
|
|
/**
|
|
* Execute before each test case.
|
|
*/
|
|
beforeEach(name: string, fn?: Mocha.Func | Mocha.AsyncFunc): void;
|
|
|
|
/**
|
|
* Execute after each test case.
|
|
*/
|
|
afterEach(fn?: Mocha.Func | Mocha.AsyncFunc): void;
|
|
|
|
/**
|
|
* Execute after each test case.
|
|
*/
|
|
afterEach(name: string, fn?: Mocha.Func | Mocha.AsyncFunc): void;
|
|
|
|
suite: SuiteFunctions;
|
|
test: TestFunctions;
|
|
}
|
|
|
|
interface CreateOptions {
|
|
/** Title of suite */
|
|
title: string;
|
|
|
|
/** Suite function */
|
|
fn?: (this: Mocha.Suite) => void;
|
|
|
|
/** Is suite pending? */
|
|
pending?: boolean;
|
|
|
|
/** Filepath where this Suite resides */
|
|
file?: string;
|
|
|
|
/** Is suite exclusive? */
|
|
isOnly?: boolean;
|
|
}
|
|
|
|
interface SuiteFunctions {
|
|
/**
|
|
* Create an exclusive Suite; convenience function
|
|
*/
|
|
only(opts: CreateOptions): Mocha.Suite;
|
|
|
|
/**
|
|
* Create a Suite, but skip it; convenience function
|
|
*/
|
|
skip(opts: CreateOptions): Mocha.Suite;
|
|
|
|
/**
|
|
* Creates a suite.
|
|
*/
|
|
create(opts: CreateOptions): Mocha.Suite;
|
|
}
|
|
|
|
interface TestFunctions {
|
|
/**
|
|
* Exclusive test-case.
|
|
*/
|
|
only(mocha: Mocha, test: Mocha.Test): Mocha.Test;
|
|
|
|
/**
|
|
* Pending test case.
|
|
*/
|
|
skip(title: string): void;
|
|
|
|
/**
|
|
* Number of retry attempts
|
|
*/
|
|
retries(n: number): void;
|
|
}
|
|
}
|
|
}
|