svgElement.getBoundingClientRect () всегда возвращает нули при тестировании с nodejs - PullRequest
0 голосов
/ 23 марта 2020

Я создал некоторый элемент svg и хочу определить его размер с помощью

svgElement.getBoundingClientRect()

Мой код работает, если svgElement добавлен в документ с помощью

document.body.appendChild(svgElement)

и если Я запускаю код в браузере (google chrome).

Однако при тестировании с nodejs и jest ширина и высота результирующего ограничивающего прямоугольника всегда равны нулю.

=> Что можно сделать, чтобы правильно запустить код с nodejs?

1 Ответ

1 голос
/ 23 марта 2020

Nodejs использует jsdom, а getBoundingClientRect реализован только для возврата правильных свойств, но не правильных значений.

Также см. https://github.com/jsdom/jsdom/issues/653

Для тестов метод getBoundingClientRect должен быть смоделирован, например:

spyOn(svgElement,'getBoundingClientRect').and.returnValue({
    width: 10,
    height: 10,
    top: 0,
    left: 0,
    right: 10,
    bottom: 10
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...