UNPKG

zora

Version:

tap test harness for nodejs and browsers

116 lines (115 loc) 3.52 kB
export declare const enum Operator { EQUAL = "equal", NOT_EQUAL = "notEqual", IS = "is", OK = "ok", NOT_OK = "notOk", IS_NOT = "isNot", FAIL = "fail", THROWS = "throws", DOES_NOT_THROW = "doesNotThrow" } export interface Result { pass: boolean; description: string; id?: number; skip?: boolean; } export interface TestResult extends Result { executionTime: number; } export interface AssertionResult extends Result { operator: Operator; expected: any; actual: any; at?: string; } export interface SpecFunction { (t: Assert): any; } export interface ComparatorAssertionFunction { <T>(actual: T, expected: T, description?: string): AssertionResult; } export interface BooleanAssertionFunction { <T>(actual: T, description?: string): AssertionResult; } export interface ErrorAssertionFunction { (fn: Function, expected?: string | RegExp | Function, description?: string): AssertionResult; } export interface MessageAssertionFunction { (message?: string): AssertionResult; } export interface TestFunction { (description: string, spec: SpecFunction, options?: object): Promise<TestResult>; } export interface Assert { equal: ComparatorAssertionFunction; equals: ComparatorAssertionFunction; eq: ComparatorAssertionFunction; deepEqual: ComparatorAssertionFunction; notEqual: ComparatorAssertionFunction; notEquals: ComparatorAssertionFunction; notEq: ComparatorAssertionFunction; notDeepEqual: ComparatorAssertionFunction; is: ComparatorAssertionFunction; same: ComparatorAssertionFunction; isNot: ComparatorAssertionFunction; notSame: ComparatorAssertionFunction; ok: BooleanAssertionFunction; truthy: BooleanAssertionFunction; notOk: BooleanAssertionFunction; falsy: BooleanAssertionFunction; fail: MessageAssertionFunction; throws: ErrorAssertionFunction; doesNotThrow: ErrorAssertionFunction; test: TestFunction; skip: TestFunction; only: TestFunction; } export declare type AssertionFunction = ComparatorAssertionFunction | BooleanAssertionFunction | ErrorAssertionFunction | MessageAssertionFunction; export interface Counter { successCount: number; failureCount: number; skipCount: number; count: number; } export interface Test extends AsyncIterable<Message<any>>, TestResult, Counter { readonly routine: Promise<any>; readonly length: number; readonly error?: any; } export interface TestCounter extends Counter { update(assertion: Test | AssertionResult): void; } export interface TestHarnessConfiguration { runOnly?: boolean; indent?: boolean; } export interface TestHarness extends Assert, AsyncIterable<Message<any>>, Counter { report: (reporter?: Reporter) => Promise<void>; pass: boolean; } export interface RootTest extends TestFunction { indent: () => void; skip: TestFunction; } export declare const enum MessageType { TEST_START = "TEST_START", ASSERTION = "ASSERTION", TEST_END = "TEST_END", BAIL_OUT = "BAIL_OUT" } export interface Message<T> { offset: number; type: MessageType; data: T; } export interface Reporter { (stream: AsyncIterable<Message<any>>): Promise<void>; } export declare type StartTestMessage = Message<{ description: string; }>; export declare type AssertionMessage = Message<Test | AssertionResult>; export declare type TestEndMessage = Message<Test>; export declare type BailoutMessage = Message<Error>;