Jest - TypeError: Невозможно прочитать свойство '[Object Array]' из неопределенного - PullRequest
0 голосов
/ 30 марта 2020

Я написал юнит-тест в шутку и вижу эту ошибку при запуске. Я получаю правильные данные в консоли. Я уже просмотрел эти посты, похожие на мои, но до сих пор не понимаю, почему это происходит:

Это мой тест:

import filterAvailableSlots from './filterAvailableSlots';

/* UNIT TEST */

describe('filterAvailableSlots', () => {
  it('should return an array', async () => {
    const bookedSlots = { '10:30': true, '11:00': true };
    const allSlots = ['9:30', '10:00', '10:30', '11:00', '11:30', '12:00'];
    const availableSlots = filterAvailableSlots([allSlots, bookedSlots]);
    expect(Array.isArray(availableSlots)).toBe(true);
  });
});

Это мой код:

/**
 * @param {Array} allSlots
 * @param {Object} bookedSlots
 * @return an array of available slots
 */

export default function filterAvailableSlots(allSlots, bookedSlots) {
  let availableSlots = [];
  availableSlots = allSlots.filter((item) => !bookedSlots[item]);
  return availableSlots;
}

Следует фильтровать массив раз и удалять любые элементы, соответствующие ключу объекта bookedSlots.

Изображение с более подробной информацией об ошибке:

не нравится моя ссылка на свойство объекта

Правильное возвращаемое значение, которое я правильно вижу через console.log:

[ '9:30', '10:00', '11:30', '12:00' ] 

Должно быть Javascript причудой, которую я не понимаю. У кого-нибудь есть идеи, почему тест не проходит, хотя я вижу правильные данные в своей консоли?

1 Ответ

0 голосов
/ 30 марта 2020

Изменить

const availableSlots = filterAvailableSlots([allSlots, bookedSlots]);

на

const availableSlots = filterAvailableSlots(allSlots, bookedSlots);

Кроме того, начальный оператор let в функции ничего не делает. Я бы просто написал это:

export default function filterAvailableSlots(allSlots, bookedSlots) {
  return allSlots.filter((item) => !bookedSlots[item]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...