it('wraps a (error, result)-callback-based function with a Promise', async () => {
    function successFn(callback) {
      callback(null, 'success');
    }
    const promisifiedSuccessFn = promisify(successFn);
    expect(await promisifiedSuccessFn()).toBe('success');

    function failFn(callback) {
      callback(new Error('fail'));
    }
    const promisifiedFailFn = promisify(failFn);
    expect(await catchError(promisifiedFailFn())).toBe('fail');
  });
 it('can propagate errors', async () => {
   const queue = new PromiseQueue();
   queue.throw(new Error('This is an error'));
   expect(await catchError(queue.consume())).toBe('This is an error');
 });