jestで関数ごとではなく、どこかしたらでthrow Errorの発生を予測した場合



const Function = require('../function');
const config = require('../config.js');

同期

describe('Timeout error', () => {
  const timeOutms = 60000;

  it('will be timeout', async () => {
    const function = new Function(config.function);
    let bThrow = false;

    try {
      await function.main();
    } catch (e) {
      if (e.message.indexOf('timeout') >= 0) bThrow = true;
    }
    expect(bThrow).toBe(true);
  }, timeOutms);
});

EventEmitterを利用している場合

describe('Timeout error', () => {
  const timeOutms = 60000;

  it('will be timeout', (done) => {
    function onError(data) {
      try {
        expect(data.error.message.indexOf('timeout')).toBeGreaterThanOrEqual(0);
        done();
      } catch (error) {
        done(error);
      }
    }
    const function = new Function(config.function);
    function.main(input);
    function.once('error', onError);
  }, timeOutms);
});