Как заставить Jest видеть вложенную функцию javascript?
У меня есть такая структура в моем проекте
|...
|Utils
| Utils.js
| Utils.test.js
|...
В Utils.js
У меня есть func, я хочу проверить:
export const getSurroundingCells = (numRows, numCols, shipPositions) => {
...
// some logic that calls cellIsSuitable()
...
const cellIsSuitable = (position, shipPositions) => {
...
// some logic that uses numRows, numCols
...
}
}
Когда я хочу проверить это через Jest
с Utils.test.js
:
import {getSurroundingCells} from "./Utils";
const shipPositions = [[1, 1], [1, 2], [1, 3]];
const expectedSurroundingCells = [[2, 1], [2, 0], [1, 0], [0,0], [0,1], [0,2], [2,2]];
test('takes positions and returns surrounding cells', () => {
expect(getSurroundingCells(10, 10, shipPositions)).toBe(expectedSurroundingCells);
});
Я получил:
ReferenceError: cellIsSuitable не определен
Как я могу заставить Jest
чтобы увидеть мою вложенную функцию cellIsSuitable
?
PS мой проект загрузился with create-react-app
,
1 ответ
Решение
Переместите это к вершине или сделайте это регулярным function
так что его лапы. Функция назначается после ее использования, но переменная объявляется.
export const getSurroundingCells = (numRows, numCols, shipPositions) => {
const cellIsSuitable = (position, shipPositions) => {
...
// some logic that uses numRows, numCols
...
}
...
// some logic that calls cellIsSuitable()
...
}