UNPKG

1.49 kBTypeScriptView Raw
1import * as fsTreeUtils from 'fs-tree-utils';
2import Tree = fsTreeUtils.Tree;
3export declare type PromiseFunc<X, Y> = (x: X) => Promise<Y>;
4export declare type SyncFunc<X, Y> = (x: X) => Y;
5export declare type SetupFunc<Y> = () => Promise<Y>;
6export declare type TeardownFunc<X> = (x: X) => Promise<void>;
7export declare type CalledFunc<X, Y> = PromiseFunc<X, Y>;
8export declare type SyncCalledFunc<X, Y> = SyncFunc<X, Y>;
9export declare type Tester = () => Promise<void>;
10export declare type AsyncTesterFactory<SM, MT> = (fn: CalledFunc<SM, MT>) => Tester;
11export declare type SyncTesterFactory<SM, MT> = (fn: SyncCalledFunc<SM, MT>) => Tester;
12export interface Config<SY, TX> {
13 readonly setup: SetupFunc<SY>;
14 readonly teardown: TeardownFunc<TX>;
15}
16export declare type TesterFactory<SM, MT> = AsyncTesterFactory<SM, MT> & {
17 forAsync: AsyncTesterFactory<SM, MT>;
18 forSync: SyncTesterFactory<SM, MT>;
19};
20export declare namespace base {
21 function createFactory<SM, MT>({ setup, teardown }: Config<SM, MT>): TesterFactory<SM, MT>;
22}
23export declare const createFactory: typeof base.createFactory;
24export declare namespace virtualEnvironment {
25 interface Info {
26 readonly tree: Tree.Write.Node;
27 readonly container: string;
28 readonly previousWorkingDirectory: string;
29 }
30 function createFactory(tree: Tree.Write.Node, container?: string): {
31 info: Info;
32 apply: TesterFactory<Info, void>;
33 };
34}
35export default createFactory;