@pipobscure/demitasse
Version:
Miniscule BDD Testing Framework
143 lines (142 loc) • 4.39 kB
TypeScript
declare class Cancelable<T> extends Promise<T> {
cancel(): void;
}
export interface asserter {
(): Promise<void> | void;
}
export interface describer {
(): void;
}
export declare class AssertionError extends Error {
code?: string;
actual?: any;
expected?: any;
}
export interface Walker {
enter(item: TestSuite): void;
case(item: TestCase): void;
exit(item: TestSuite): void;
}
export interface Reporter extends Walker {
bailed: boolean;
report(item: TestCase, status: 'ok' | 'not ok' | 'skipped', error?: AssertionError): void;
}
export declare class TAPReporter implements Reporter {
constructor();
private stack;
private summary;
bailed: boolean;
private indent;
case(item: TestCase): void;
report(item: TestCase, status: 'ok' | 'not ok' | 'skipped', error?: AssertionError): void;
enter(item: TestSuite): void;
exit(item: TestSuite): void;
}
declare class TestCase {
constructor(label: string, runner: asserter);
label: string;
private readonly run;
skipped: boolean;
timeout: number;
execute(context: Reporter): Promise<boolean>;
propagateSkip(skipped: boolean): void;
print(indent?: string): void;
}
declare class TestSuite extends TestCase {
constructor(label: string);
private _before;
private _beforeEach;
private _test;
private _afterEach;
private _after;
private _only;
before(item: TestCase): void;
beforeEach(item: TestCase): void;
test(item: TestCase): void;
afterEach(item: TestCase): void;
after(item: TestCase): void;
only(item: TestCase): void;
propagateSkip(skipped: boolean): void;
executeList(context: Reporter, list: TestCase[]): Promise<boolean>;
execute(context: Reporter): Promise<boolean>;
print(indent?: string): void;
[Symbol.iterator](): IterableIterator<TestCase>;
}
export interface ConfigOptions {
autorun?: boolean;
output?: (args: any[]) => void;
logout?: (args: any[]) => void;
reporter?: () => Reporter;
timeout?: number;
print?: boolean;
summary?: boolean;
sleep?: (ms: number) => Cancelable<void>;
}
export declare function configure(options?: ConfigOptions): void;
export declare function describe(label: string, runner: describer): {
skip: () => any;
todo: () => any;
only: () => any;
};
export declare namespace describe {
var skip: (label: string, runner: describer) => {
skip: () => any;
todo: () => any;
only: () => any;
};
var todo: (label: string, runner: describer) => {
skip: () => any;
todo: () => any;
only: () => any;
};
var only: (label: string, runner: describer) => {
skip: () => any;
todo: () => any;
only: () => any;
};
}
export declare function before(runner: asserter): void;
export declare function beforeEach(runner: asserter): void;
export declare function it(label: string, runner: asserter): {
skip: () => any;
todo: () => any;
only: () => any;
timeout: (ms: number) => any;
};
export declare namespace it {
var skip: (label: string, runner: asserter) => {
skip: () => any;
todo: () => any;
only: () => any;
timeout: (ms: number) => any;
};
var todo: (label: string, runner: asserter) => {
skip: () => any;
todo: () => any;
only: () => any;
timeout: (ms: number) => any;
};
var only: (label: string, runner: asserter) => {
skip: () => any;
todo: () => any;
only: () => any;
timeout: (ms: number) => any;
};
var timeout: (label: string, ms: number, runner: asserter) => {
skip: () => any;
todo: () => any;
only: () => any;
timeout: (ms: number) => any;
};
}
export declare const timeout: (label: string, ms: number, runner: asserter) => {
skip: () => any;
todo: () => any;
only: () => any;
timeout: (ms: number) => any;
};
export declare function afterEach(runner: asserter): void;
export declare function after(runner: asserter): void;
export declare function main(): Promise<boolean>;
export declare function skeleton(walker: Walker, items?: TestCase[]): void;
export {};