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.
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 () {};
Comentários muito úteis
@QuantumInformation Você pode usar isso para o Jest:
Element.prototype.scrollIntoView = jest.fn();