28 lines
947 B
TypeScript
28 lines
947 B
TypeScript
import * as TE from "fp-ts/TaskEither";
|
|
import { pipe, flow } from "fp-ts/function";
|
|
import {
|
|
collectionsRunner,
|
|
collectionsRunnerExit,
|
|
collectionsRunnerResult,
|
|
} from "../utils/collections";
|
|
import { handleError } from "../handlers/error";
|
|
import { parseCollectionData } from "../utils/mutators";
|
|
import { parseEnvsData } from "../options/test/env";
|
|
import { TestCmdOptions } from "../types/commands";
|
|
import { parseDelayOption } from "../options/test/delay";
|
|
|
|
export const test = (path: string, options: TestCmdOptions) => async () => {
|
|
await pipe(
|
|
TE.Do,
|
|
TE.bind("envs", () => parseEnvsData(options.env)),
|
|
TE.bind("collections", () => parseCollectionData(path)),
|
|
TE.bind("delay", () => parseDelayOption(options.delay)),
|
|
TE.chainTaskK(collectionsRunner),
|
|
TE.chainW(flow(collectionsRunnerResult, collectionsRunnerExit, TE.of)),
|
|
TE.mapLeft((e) => {
|
|
handleError(e);
|
|
process.exit(1);
|
|
})
|
|
)();
|
|
};
|