Я пытаюсь написать тест, который утверждает что-то, когда элемент находится в области просмотра.
Я использую API IntersectionObserver
, и получается, что вызовыНаблюдатели заканчивают, когда браузер может их создать.
Итак, вопрос в том, как мне подходить к такому утверждению?Должен ли я просто подождать какое-то время ?Сколько миллисекунд достаточно?Есть ли событие, чтобы узнать, когда браузер завершил вызов наблюдателей?
В настоящее время я делаю это так:
// ... do whatever to make the code observe some elements
document.scrollingElement.scrollTop = window.innerHeight;
// Wait for observer to kick in (tried 1, 5, millis, 10 seems to work)
await new Promise(resolve => setTimeout(resolve, 10));
sinon.assert.calledWith(spy, dom.querySelector(selector));
Это работает, но мне интересно, есть ли что-то лучшежди, чем просто какое-то время .