yeoman-test
Version:
Test utilities for Yeoman generators
31 lines (30 loc) • 877 B
JavaScript
import process from 'node:process';
class TestContext {
runResult;
runContext;
startNewContext(runContext) {
this.runContext?.cleanupTemporaryDir();
this.runContext = runContext;
this.runResult = undefined;
}
}
const testContext = new TestContext();
const cleanupTemporaryDir = () => {
testContext.startNewContext();
};
process.on('exit', cleanupTemporaryDir);
process.on('SIGINT', cleanupTemporaryDir);
process.on('SIGTERM', cleanupTemporaryDir);
export default testContext;
const handler2 = {
get(_target, prop, receiver) {
if (testContext.runResult === undefined) {
throw new Error('Last result is missing.');
}
return Reflect.get(testContext.runResult, prop, receiver);
},
};
/**
* Provides a proxy for last executed context result.
*/
export const result = new Proxy({}, handler2);