UNPKG

@plugjs/expect5

Version:

Unit Testing for the PlugJS Build System ========================================

58 lines (57 loc) 1.96 kB
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 {};