Я написал юнит-тест в шутку и вижу эту ошибку при запуске. Я получаю правильные данные в консоли. Я уже просмотрел эти посты, похожие на мои, но до сих пор не понимаю, почему это происходит:
Это мой тест:
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 причудой, которую я не понимаю. У кого-нибудь есть идеи, почему тест не проходит, хотя я вижу правильные данные в своей консоли?