UNPKG

testeranto

Version:

the AI powered BDD test framework for typescript projects

82 lines (73 loc) 2.08 kB
import Testeranto from "./lib/core.js"; import { defaultTestResourceRequirement, ITTestResourceRequest, } from "./lib/index.js"; import { PM_Node } from "./PM/node.js"; import { ITestSpecification, ITestImplementation, ITestAdapter, Ibdd_in_any, Ibdd_out_any, Ibdd_out, } from "./CoreTypes.js"; let ipcfile; export class NodeTesteranto< I extends Ibdd_in_any, O extends Ibdd_out_any, M > extends Testeranto<I, O, M> { constructor( input: I["iinput"], testSpecification: ITestSpecification<I, O>, testImplementation: ITestImplementation<I, O, M>, testResourceRequirement: ITTestResourceRequest, testAdapter: Partial<ITestAdapter<I>> ) { super( input, testSpecification, testImplementation, testResourceRequirement, testAdapter, () => { // no-op } ); } async receiveTestResourceConfig(partialTestResource: string) { return await this.testJobs[0].receiveTestResourceConfig( new PM_Node(JSON.parse(partialTestResource), ipcfile) ); } } const testeranto = async <I extends Ibdd_in_any, O extends Ibdd_out, M>( input: I["iinput"], testSpecification: ITestSpecification<I, O>, testImplementation: ITestImplementation<I, O, M>, testAdapter: Partial<ITestAdapter<I>>, testResourceRequirement: ITTestResourceRequest = defaultTestResourceRequirement ): Promise<Testeranto<I, O, M>> => { try { const t = new NodeTesteranto<I, O, M>( input, testSpecification, testImplementation, testResourceRequirement, testAdapter ); process.on("unhandledRejection", (reason, promise) => { console.error("Unhandled Rejection at:", promise, "reason:", reason); // Optionally, terminate the process or perform cleanup // t.registerUncaughtPromise(reason, promise); }); ipcfile = process.argv[3]; process.exit((await t.receiveTestResourceConfig(process.argv[2])).fails); } catch (e) { console.error(e); console.error(e.stack); process.exit(-1); } }; export default testeranto;