@openfin/automation-cli
Version:
CLI for running automation tests within the OpenFin ecosystem
1 lines • 1.54 kB
JavaScript
;require("child_process"),require("fs/promises"),require("http"),require("os"),require("path"),require("chalk");const t=require("jest-environment-node").TestEnvironment;module.exports=class extends t{constructor(t,s){super(t,s),this._testFailCount=t.projectConfig.globals.testFailCount,this._hooksFilename=t.projectConfig.globals.hooksFilename,this._failed=0}async handleTestEvent(t){["test_start","test_fn_start"].includes(t.name)?(globalThis.automation=globalThis.automation??{},globalThis.automation.currentTestName=t.test.name,globalThis.automation.globalVars=this._globalVars,this._testFailCount>0&&this._failed>=this._testFailCount&&(t.test.mode="skip"),"test_start"===t.name&&this._hooks?.beforeEach&&await(this._hooks?.beforeEach(this._globalVars,t.test.name))):["hook_failure","test_fn_failure"].includes(t.name)?this._failed++:"test_done"===t.name&&this._hooks?.afterEach&&await(this._hooks?.afterEach(this._globalVars,t.test.name))}async setup(){this._hooksFilename&&(this._hooks=await async function(t){let s;if(t)try{s=require(t)}catch(e){try{s=await import(t)}catch(t){if(e instanceof Error&&t instanceof Error&&e.message===t.message)throw new Error(`Error loading hooks module\n${e.message}`);throw new Error(`Error loading hooks module\nLoading as CJS failed with ${e}\nLoading as ESM failed with ${t}`)}}return s}(this._hooksFilename)),this._hooks?.setup&&(this._globalVars={},await(this._hooks?.setup(this._globalVars)))}async teardown(){this._hooks?.teardown&&await(this._hooks?.teardown(this._globalVars))}};