Probando stdin / stdout con mock-cli, no se puede hacer una segunda llamada al archivo

Ninguna transmisión enviada en segunda llamada

const mockCli = require('mock-cli') const {Readable} = require('stream') const util = require('util') const bluebird = require('bluebird') const createReadableStream = (input, callback) => { input = input || null function ReadableStream (options) { Readable.call(this, options) } util.inherits(ReadableStream, Readable) ReadableStream.prototype._read = function (size) { if (callback) callback(input) this.push(input) input = null } return new ReadableStream() } const mockCliWrapper = (argv, stdin) => { return mockCli(['node', 'index', ...argv], { stdin: createReadableStream(stdin), stdout: process.stdout, stderr: process.stderr }, (error, result) => { if (error) throw error console.log(result) }) } const test = async (argv, stdin) => { var unMockCli = mockCliWrapper(argv, stdin) delete require.cache[require.resolve('./index')] require('./index') await bluebird.delay(0) unMockCli() } (async () => { await test(['World', 'Thomas'], 'Hello World!') await test(['America', 'Thomas'], 'Hello America!') })() 

Aquí está el archivo que estoy tratando de probar.

 // #!/usr/bin/env node const getStdin = require('get-stdin') const args = process.argv.slice(2) getStdin().then(str => { try { if (str === '') return process.exit(0) const pattern = new RegExp(args[0], 'gm') process.stdout.write(str.replace(pattern, args[1])) return process.exit(0) } catch (e) { return process.exit(1) } }).catch(console.log) 

Esto está registrando lo siguiente

  ▼ Start of CLI capture ▼ Hello Thomas!▲ End of CLI capture ▲ { code: 0, stdin: 'Hello World!', stdout: 'Hello Thomas!', stderr: '' } ▼ Start of CLI capture ▼ ▲ End of CLI capture ▲ 

El código del módulo requerido no está recibiendo el segundo stdin por alguna razón.