@plugjs/expect5
Version:
Unit Testing for the PlugJS Build System ========================================
58 lines (57 loc) • 1.96 kB
TypeScript
import { Hook, Spec, Suite } from './executable';
export interface ExecutionFailure {
number: number;
error: Error;
source: Suite | Spec | Hook;
type: 'suite' | 'spec' | 'hook';
}
export interface ExecutionEvents {
'suite:start': (suite: Suite) => void;
'suite:done': (suite: Suite, time: number) => void;
'spec:start': (spec: Spec) => void;
'spec:error': (spec: Spec, failure: ExecutionFailure) => void;
'spec:skip': (spec: Spec, time: number) => void;
'spec:pass': (spec: Spec, time: number, slow: boolean) => void;
'spec:fail': (spec: Spec, time: number, failure: ExecutionFailure) => void;
'hook:start': (hook: Hook) => void;
'hook:error': (hook: Hook, failure: ExecutionFailure) => void;
'hook:skip': (hook: Hook, time: number) => void;
'hook:pass': (hook: Hook, time: number) => void;
'hook:fail': (hook: Hook, time: number, failure: ExecutionFailure) => void;
}
interface SuiteRecord {
type: 'suite';
name: string;
records: (SuiteRecord | SpecRecord | HookRecord)[];
}
interface SpecRecord {
type: 'spec';
name: string;
result: 'passed' | 'failed' | 'skipped';
failure?: number;
slow?: boolean;
ms: number;
}
interface HookRecord {
type: 'hook';
name: string;
result: 'failed';
failure: number;
}
export type Record = SuiteRecord | SpecRecord | HookRecord;
export interface Execution {
on<E extends keyof ExecutionEvents>(event: E, listener: ExecutionEvents[E]): this;
off<E extends keyof ExecutionEvents>(event: E, listener: ExecutionEvents[E]): this;
once<E extends keyof ExecutionEvents>(event: E, listener: ExecutionEvents[E]): this;
result: Promise<ExecutionResult>;
}
export interface ExecutionResult {
passed: number;
failed: number;
skipped: number;
time: number;
failures: ExecutionFailure[];
records: Record[];
}
export declare function runSuite(suite: Suite): Execution;
export {};