UNPKG

@typed/test

Version:
60 lines (59 loc) 1.8 kB
export declare const TYPED_TEST: unique symbol; export interface Test { readonly [TYPED_TEST]: TestConfig; readonly runTest: (spec: TestSpec) => Promise<TestResult>; } export interface TestConfig { readonly name: string; readonly timeout?: number; readonly modifier?: 'only' | 'skip'; } export interface TestSpec { readonly timeout: number; readonly skip: boolean; } export declare type TestResult = PassedTestResult | SkippedTestResult | FailedTestResult | GroupResult; export declare type PassedTestResult = { readonly type: 'pass'; readonly name: string; }; export declare type SkippedTestResult = { readonly type: 'skip'; readonly name: string; }; export declare type FailedTestResult = { readonly type: 'fail'; readonly error: Error; readonly name: string; }; export declare type GroupResult = { readonly type: 'group'; readonly name: string; readonly results: TestResult[]; }; export interface TestMetadata extends NodeMetadata { readonly exportNames: string[]; readonly filePath: string; readonly additionalTests: NodeMetadata[]; } export interface NodeMetadata { readonly line: number; readonly lines: number; readonly position: [number, number]; readonly text: string; readonly additionalTests: NodeMetadata[]; } export declare type TestsWithMetadata = TestMetadata & { readonly tests: Test[]; }; export declare type TestsWithResults = TestsWithMetadata & { readonly results: TestResult[]; }; export declare type JsonResults = { [K in Exclude<keyof TestsWithResults, 'tests'>]: TestsWithResults[K]; }; export interface Logger { readonly log: (msg: string) => Promise<void>; readonly error: (msg: string) => Promise<void>; readonly clear: (msg: string) => Promise<void>; }