Jsdom: scrollIntoView não é uma função

Criado em 28 dez. 2016  ·  14Comentários  ·  Fonte: jsdom/jsdom

Estou executando um teste usando uma biblioteca ( grommet ) que usa scrollIntoView em uma tag a . jsdom está lançando erros ao atingir essa linha de código. Consegui fazê-lo funcionar adicionando window.HTMLElement.prototype.scrollIntoView = function() {}; em meu arquivo testHelper para configurar os testes, mas pensei em reportar para ver se é algo que você deseja corrigir.

css feature layout

Comentários muito úteis

@QuantumInformation Você pode usar isso para o Jest:

Element.prototype.scrollIntoView = jest.fn();

Todos 14 comentários

Sim, pode valer a pena adicionar um esboço de aviso não implementado para. Não podemos realmente implementá-lo, pois não fazemos layout.

Qualquer movimento sobre isso?

Tentando usar em um teste Jest, estou tentando montar um componente que chama scrollIntoView em um elemento, e o teste sempre falha com

TypeError: node.scrollIntoView is not a function
        at Object.scrollInToView src/component/shared/foo.tsx:7
        at User.Object.<anonymous>.User.componentDidMount

@QuantumInformation Você pode usar isso para o Jest:

Element.prototype.scrollIntoView = jest.fn();

Vejo essa correção em todos os lugares, mas você estava importando o elemento de? Eu obtenho 'Elemento não definido' Estou usando uma enzima com chai.

Você precisa do Element em suas bibliotecas tsconfig:

ie
'dom'

@ qmg-JamesT É a classe de elemento global de onde os outros elementos são herdados do método scrollIntoView .

Oi, há alguma atualização sobre isso sem usar o jest?

Olá, você pode usar window.HTMLElement.prototype.scrollIntoView = jest.fn ()

Preciso do mesmo para Element.prototype.scroll = jest.fn ()

@enessoylu e @msmetana onde você recomenda colocar Element.prototype.scrollIntoView = jest.fn() , em cada .teste.

Ao usar o CRA, há um setupTest.ts, parece funcionar, mas idk

import '@testing-library/jest-dom/extend-expect'

Element.prototype.scroll = jest.fn()

Para ava ou qualquer outro executor de teste de unidade, você pode usar window.HTMLElement.prototype.scrollIntoView = () => {} e defini-lo em test.beforeEach() ou dentro da função de teste

Para mim bastou definir:

Element.prototype.scrollIntoView` = () => {};

uma vez em setupJest.ts

Este também parece ser o caso de scroll

Element.prototype.scrollIntoView = jest.fn();

Obrigado! funcionou.

tente este..
window.HTMLElement.prototype.scrollIntoView = function () {};

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

jacekpl picture jacekpl  ·  4Comentários

tolmasky picture tolmasky  ·  4Comentários

jhegedus42 picture jhegedus42  ·  4Comentários

khalyomede picture khalyomede  ·  3Comentários

amfio picture amfio  ·  3Comentários