jest, jsdom и объект документа при импорте функции

У меня есть функция, которая производит побочный эффект. Я упрощаю его, регистрируя содержимое элемента Node, чтобы сосредоточиться на проблемах.

logFile.js

      function log() {
  console.log(document.querySelector('#mydiv').textContent)
}

export { log }

Затем у меня есть модульный тест

log.test.js

      import {
  log
} from '../logFile'

import { JSDOM } from 'jsdom'

describe('Test log function', () => {

  it('should log what the div is holding', () => {
    const dom = new JSDOM(`<!DOCTYPE html><div id="mydiv">HELLO</div>`);
    const document = dom.window.document;

    // This works
    console.log(document.querySelector('#mydiv').textContent)

    // This also works
    console.log(document.querySelector('#mydiv').textContent)

    // This doesn't work
    log()
  });
})

Это тривиальный пример, но что произойдет, если я захочу манипулировать DOM, используя .appendChild() ...?

И в консоли вижу следующую ошибку

          TypeError: Cannot read property 'textContent' of null

      26 |   
    > 27 |   console.log(document.querySelector('#mydiv').textContent)
         |               ^
      28 |
      29 | }

Кто-нибудь может мне помочь? Спасибо

0 ответов

Другие вопросы по тегам