javascript - Jest/Enzyme/JSDOM document.body.createTextRange er ikke en funksjon
Jeg prøver å teste en React-komponent, og det ser ut til at jeg støter på et JSDOM-problem.
Når jeg monterer komponenten min;
const component = mount(
<PipelineActions pipelineActions={value} {...actions} />
);
Jeg får en feil kastet;
document.body.createTextRange er ikke en funksjon
Jeg prøvde å sette dommen direkte via;
(global as any).document = jsdom.jsdom('');
(global as any).window = document.defaultView;
som ikke hadde noen effekt. Når jeg prøver å console.log(document.body) får jeg også noe merkelig;
HTMLBodyElement {}
Det ser ut som DOM-en ikke bygges riktig, men jeg er ikke sikker på hvorfor. Har noen sett dette før?
Svar #1
Du kan sette og simulere ting på global-objektet:
global.body = {createTextRange: jest.fn()}
