import { AnyObject, AnyType, ValueOrPromise } from '../../common'; import { DIContainerHelper } from '../storage'; export interface ITestContext { scope: string; getRegistry: () => DIContainerHelper; bind: (opts: { key: string; value: T; }) => void; getSync: (opts: { key: keyof R; }) => E; } export type TTestCaseDecision = '000_UNKNOWN' | '000_FAIL' | '200_SUCCESS'; export interface ITestCaseInput { } export interface ITestCaseHandler { context: ITestContext; args: I | null; validator?: (args: AnyObject) => ValueOrPromise; } export interface ITestCase { code: string; name?: string; description: string; expectation?: string; handler: ITestCaseHandler; run: () => ValueOrPromise; } export type TTestHook = (testPlan: ITestPlan) => ValueOrPromise; export interface ITestHooks { before?: TTestHook; beforeEach?: TTestHook; after?: TTestHook; afterEach?: TTestHook; } export interface ITestPlanOptions { scope: string; hooks?: ITestHooks; testCases?: Array>; testCaseResolver?: (opts: { context: ITestContext; }) => Array>; } export interface ITestPlan extends ITestContext { getTestCases: () => Array>; getContext: () => ITestContext; getHooks: () => ITestHooks; getHook: (opts: { key: keyof ITestHooks; }) => TTestHook | null; execute: () => ValueOrPromise; } //# sourceMappingURL=types.d.ts.map