Как проверить функцию, которая возвращает функции?

Здесь у меня есть функция generateBlocks который принимает в массиве blocks и функция onBlockClick, Возвращает массив объектов, где каждый объект имеет два свойства label а также onClick,

function generateBlocks(blocks, onBlockClick){
   return blocks.map(block => (
     {
        label: block.label,
        onClick: ()=>onBlockClick(block.name)
     }
 ))
}

Я не могу проверить это возвращаемое значение. Вот контрольный пример:

const blocks = [{label: "A", name: "a"}, {label: "B", name: "b"}];
const onBlockClick = someFunction(){};

expect(generateBlocks(blocks, onBlockClick)).to.deep.equal(expected)

Я не могу создать expected как [[{label: "A", onClick: ()=>onBlockClick("A")},...] потому что ссылка на функцию будет отличаться.

Итак, как мне сделать рефакторинг функции generateBlocks, чтобы сделать его тестируемым?

1 ответ

Вы можете использовать метод.toString() для функции ref и сравнить с ожидаемым результатом строки.

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