Как я могу выдать событие ошибки в шутку и машинописи - PullRequest
0 голосов
/ 19 декабря 2018

Например, я использую Архиватор :

archive.on('error', err => {
  if (typeof callback === 'function') {
    callback.call(this, err);
  } else {
    throw err;
  }
});

Эти строки раскрыты в шутку.Как вы можете испустить эту ошибку?Макет?

1 Ответ

0 голосов
/ 19 декабря 2018

Вы можете переместить ваши обратные вызовы в другой модуль и затем экспортировать его, например:

//calbacks.js

const errorCallback = callback => err => {
  if (typeof callback === 'function') {
    callback.call(this, err);
  } else {
    throw err;
  }
}

export {errorCallback} // es6 named export

Затем вы можете импортировать его в свой основной файл:

import { errorCallback } from "./callbacks.js" //path should be correct, this would work if you have both files in same directory

...

archive.on('error', errorCallback(callback)) //pass callback to curried function

Вы также можете простоимпортируйте его в spec и протестируйте:

const spy = jest.fn()

errorCallback(fn)("error")    
expect(spy).toBeCalledWith("error");

, а также тестовый случай, когда обратный вызов не работает:

expect(() => {
    errorCallback("notFunction")("error")
}).toThrow()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...