У меня есть эта функция, которую я хочу проверить в шутке:
getAttributes(el) {
let dataAttrs = {};
let attributes = el.attributes;
const dataAttributes: any = Object.values(attributes);
for (const dataAttribute of dataAttributes) {
let keyName = dataAttribute.name;
let keyValue = dataAttribute.value;
dataAttrs[keyName] = keyValue;
}
return dataAttrs;
}
Вот мой тест шутки:
test('get attributes on element', () => {
let breadcrumb = new DsBreadcrumb();
var element = document.createElement('a');
element.setAttribute('href', 'https://www.google.ca/');
element.innerHTML = 'lorem ipsum lorem ispum';
console.log(element.innerText);
expect(breadcrumb.getAttributes(element)).toBe('Hello');
});
Вот что возвращает шутка:
Я знаю, что мой код работает вне jest, и когда я консоль регистрирую данные. Атрибуты я получаю так:
Итак в моем коде, когда я делаю: let keyName = dataAttribute.name;
keyname возвращает неопределенное значение, потому что не может найти значение элемента html. На фото выше вы можете увидеть информацию, которая мне нужна, но по какой-то причине это не объект MockAttr под _name
Любая помощь очень ценится!