argparse-ts
Version:
Modern CLI arguments parser for node.js
26 lines (20 loc) • 705 B
text/typescript
import SpyInstance = jest.SpyInstance;
type SpyFactory = () => SpyInstance;
export function usingSpies(factories: SpyFactory[], action: (...spies: SpyInstance[]) => void) {
const spies = factories.map(context => context());
try {
action(...spies);
} finally {
spies.forEach(spy => spy.mockRestore());
}
}
export function createExitSpy() {
return jest.spyOn(process, 'exit')
.mockImplementation((number) => { throw new Error('process.exit: ' + number); });
}
export function createConsoleLogSpy() {
return jest.spyOn(console, 'log').mockImplementation(() => {});
}
export function createConsoleErrorSpy() {
return jest.spyOn(console, 'error').mockImplementation(() => {});
}