Sinon CallFake возвращает тот же вывод в других файлах

У меня есть файл модуля с кодом ниже

всякий раз, когда обещание отклонено, process.exit вызывается с кодом 1

module.exports = myPromiseReturningFunc(args)
.then(el => {
  return true;
})
.catch(err => {
  console.error('Error ', err)
  return process.exit(1);
})

// here is my index.test.js
const sinon = require('sinon');
describe('Index', () => {
  let exitStub;
  beforeEach(done => {  
    exitStub = sinon.stub(process, 'exit').callsFake(() => {
      return 'error'
    })
  })
  afterEach(done => {
    process.exit.restore();
  })

  it('should exit with error', (done) => {
    myModuleFunction(args).then(result => {
      expect(result).to.be.eql('error'); // passed here
      done();
    })
  })
})

// another test file
describe('Help Module', () => {
  it('should return true', (done) => {
    myModuleFunction({}).then(result => {
      console.log(result); // prints error here again :-(
      expect(result).to.be.true;
    })
  })
})

Я хотел бы заглушить process.exit один раз и потом, но он возвращает ту же ошибку в других файлах, хотя другая функция возвращает ответ об успешном завершении

0 ответов

Другие вопросы по тегам