Прежде всего, компонент предпочтительно не должен использовать DOM напрямую, потому что это влияет на тестируемость и SSR.Если он использует, предпочтительно использовать относительные запросы, а не document
.
JSDOM - это не браузер без заголовка, а среда Node.js, которая эмулирует среду браузера.
Jest использует JSDOM по умолчанию .document
не может быть null
, если только он не был специально ему назначен.Если Jest не настроен на использование JSDOM, выдается ошибка document is not defined
.
В сообщении об ошибке указывается, что document.getElementById()
результат null
, а не document
.
document.getElementById
предполагается использовать как любую другую функцию:
jest.spyOn(document, 'getElementById').mockReturnValueOnce({ value: '...' });