mocha-typescript
Version:
TypeScript decorators based wrapper over mocha's interface
100 lines (91 loc) • 4.97 kB
TypeScript
/// <reference path="./index.d.ts" />
/**
* This TypeScript declaration file describes the API provided by mocha-typescript when it is used as custom-ui.
* To import the definitions, use somewhere in your test files the tripple slash reference:
* /// <reference path="node_modules/mocha-typescript/globals.d.ts" />
*/
declare namespace Mocha {
export interface IContextDefinition {
/**
* This is either a single trait overload `(trait: MochaTypeScript.SuiteTrait): ClassDecorator`
* or a class decorator overload `(target: Function): void`.
* Can't figure out proper typing.
*/
(args: any): any;
(): ClassDecorator;
(name: string): ClassDecorator;
(name: string, ... traits: MochaTypeScript.SuiteTrait[]): ClassDecorator;
(trait: MochaTypeScript.SuiteTrait, ... traits:MochaTypeScript.SuiteTrait[]): ClassDecorator;
only(arg: any): any;
only(): ClassDecorator;
only(name: string): ClassDecorator;
only(name: string, ... traits: MochaTypeScript.SuiteTrait[]): ClassDecorator;
only(... traits:MochaTypeScript.SuiteTrait[]): ClassDecorator;
skip(arg: any): any;
skip(): ClassDecorator;
skip(name: string): ClassDecorator;
skip(name: string, ... traits: MochaTypeScript.SuiteTrait[]): ClassDecorator;
skip(... traits:MochaTypeScript.SuiteTrait[]): ClassDecorator;
}
export interface ITestDefinition {
(target: Object, propertyKey: string | symbol): void;
(name: string): PropertyDecorator;
(name: string, ... traits: MochaTypeScript.TestTrait[]): PropertyDecorator;
(... traits: MochaTypeScript.TestTrait[]): PropertyDecorator;
only(target: Object, propertyKey: string | symbol): void;
only(name: string): PropertyDecorator;
only(name: string, ... traits: MochaTypeScript.TestTrait[]): PropertyDecorator;
only(... traits: MochaTypeScript.TestTrait[]): PropertyDecorator;
skip(target: Object, propertyKey: string | symbol): void;
skip(name: string): PropertyDecorator;
skip(name: string, ... traits: MochaTypeScript.TestTrait[]): PropertyDecorator;
skip(... traits: MochaTypeScript.TestTrait[]): PropertyDecorator;
}
// @types/mocha v5.2.4
interface SuiteFunction {
(args: any): any;
(): ClassDecorator;
(name: string): ClassDecorator;
(name: string, ... traits: MochaTypeScript.SuiteTrait[]): ClassDecorator;
(trait: MochaTypeScript.SuiteTrait, ... traits:MochaTypeScript.SuiteTrait[]): ClassDecorator;
}
interface PendingSuiteFunction {
(args: any): any;
(): ClassDecorator;
(name: string): ClassDecorator;
(name: string, ... traits: MochaTypeScript.SuiteTrait[]): ClassDecorator;
(trait: MochaTypeScript.SuiteTrait, ... traits:MochaTypeScript.SuiteTrait[]): ClassDecorator;
}
interface ExclusiveSuiteFunction {
(args: any): any;
(): ClassDecorator;
(name: string): ClassDecorator;
(name: string, ... traits: MochaTypeScript.SuiteTrait[]): ClassDecorator;
(trait: MochaTypeScript.SuiteTrait, ... traits:MochaTypeScript.SuiteTrait[]): ClassDecorator;
}
interface TestFunction {
(target: Object, propertyKey: string | symbol): void;
(name: string): PropertyDecorator;
(name: string, ... traits: MochaTypeScript.TestTrait[]): PropertyDecorator;
(... traits: MochaTypeScript.TestTrait[]): PropertyDecorator;
}
interface PendingTestFunction {
(target: Object, propertyKey: string | symbol): void;
(name: string): PropertyDecorator;
(name: string, ... traits: MochaTypeScript.TestTrait[]): PropertyDecorator;
(... traits: MochaTypeScript.TestTrait[]): PropertyDecorator;
}
interface ExclusiveTestFunction {
(target: Object, propertyKey: string | symbol): void;
(name: string): PropertyDecorator;
(name: string, ... traits: MochaTypeScript.TestTrait[]): PropertyDecorator;
(... traits: MochaTypeScript.TestTrait[]): PropertyDecorator;
}
}
declare var skipOnError: MochaTypeScript.SuiteTrait;
declare function slow(time: number): PropertyDecorator & ClassDecorator & MochaTypeScript.SuiteTrait & MochaTypeScript.TestTrait;
declare function timeout(time: number): PropertyDecorator & ClassDecorator & MochaTypeScript.SuiteTrait & MochaTypeScript.TestTrait;
declare function retries(count: number): PropertyDecorator & ClassDecorator & MochaTypeScript.SuiteTrait & MochaTypeScript.TestTrait;
declare function pending<TFunction extends Function>(target: Object | TFunction, propertyKey?: string | symbol): void;
declare function only<TFunction extends Function>(target: Object, propertyKey?: string | symbol): void;
declare function skip<TFunction extends Function>(target: Object | TFunction, propertyKey?: string | symbol): void;