2017-02-07 19 views
2

Я пытаюсь протестировать компонент реакции, и я, кажется, сталкиваюсь с проблемой JSDOM.Jest/Enzyme/JSDOM document.body.createTextRange не является функцией

Когда я монтирую свой компонент;

const component = mount(
    <PipelineActions pipelineActions={value} {...actions} /> 
); 

Я получаю сообщение об ошибке;

document.body.createTextRange не является функцией

Я попытался установить РОМ непосредственно через;

(global as any).document = jsdom.jsdom(''); 
(global as any).window = document.defaultView; 

который не имел никакого эффекта. Когда я пытаюсь console.log(document.body), я получаю что-то нечетное;

HTMLBodyElement {}

Похоже, что DOM не получает построен правильно, но я не знаю, почему. Кто-нибудь видел это раньше?

+0

Исправление находится здесь https://stackoverflow.com/questions/21572682/createtextrange-is-not-working-in-chrome/46424247 # 46424247 – danday74

ответ

0

Вы можете установить и фиктивный материал на global объекта:

global.body.createTextRange = jest.fn()