@typed/test
Version:
Simple test framework
49 lines (48 loc) • 1.63 kB
TypeScript
import { equal } from './assertions/equal';
import { notEqual } from './assertions/notEqual';
import { notOk } from './assertions/notOk';
import { ok } from './assertions/ok';
import { rejects } from './assertions/rejects';
import { same } from './assertions/same';
import { throws } from './assertions/throws';
export declare type Done = <Err extends Error>(error?: Err) => void;
export declare type TestFn = (assertions: Assertions, done: Done) => any;
export declare type TestResult = SuccessfulTestResult | FailedTestResult;
export interface SuccessfulTestResult {
readonly passed: true;
readonly error: void;
}
export interface FailedTestResult {
readonly passed: false;
readonly error: Error;
}
export interface Test {
readonly name: string;
readonly run: (timeout: number) => Promise<TestResult>;
}
export interface TestCollection {
readonly name: string;
readonly tests: ReadonlyArray<Test | TestCollection>;
readonly run: (timeout: number) => Promise<TestResults>;
}
export interface TestResults {
readonly passed: boolean;
readonly results: Results;
}
export declare type Results = Record<string, TestResult | TestResults | ReadonlyArray<TestResult | TestResults>>;
export interface Assertions {
readonly equal: typeof equal;
readonly notEqual: typeof notEqual;
readonly notOk: typeof notOk;
readonly ok: typeof ok;
readonly rejects: typeof rejects;
readonly same: typeof same;
readonly throws: typeof throws;
}
export interface Stats {
count: number;
}
export interface AssertionEnvironment {
stats: Stats;
assertions: Assertions;
}