Jsdom: scrollIntoView рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рджрд┐рд╕ре░ 2016  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: jsdom/jsdom

рдореИрдВ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп ( grommet ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ a рдЯреИрдЧ рдкрд░ scrollIntoView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред jsdom рдХреЛрдб рдХреА рдЙрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рдорд╛рд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдлреЗрдВрдХ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЯреЗрд╕реНрдЯ рд╣реЗрд▓реНрдкрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ window.HTMLElement.prototype.scrollIntoView = function() {}; рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@QuantumInformation рдЖрдк рдЗрд╕реЗ рдЬреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

рд╕рднреА 14 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдБ, рдпрд╣ рдПрдХ рдЧреИрд░-рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд-рдЪреЗрддрд╛рд╡рдиреА рд╕реНрдЯрдм рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд▓реЗрдЖрдЙрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕ рдкрд░ рдХреЛрдИ рдЖрдВрджреЛрд▓рди?

рдЬреЗрд╕реНрдЯ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рдПрдХ рдШрдЯрдХ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдХрд┐рд╕реА рддрддреНрд╡ рдкрд░ рд╕реНрдХреНрд░реЙрд▓рдЗрдиреНрдЯреЛ рд╡реНрдпреВ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╣рдореЗрд╢рд╛ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ

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

@QuantumInformation рдЖрдк рдЗрд╕реЗ рдЬреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

рдореБрдЭреЗ рдпрд╣ рдлрд┐рдХреНрд╕ рд╣рд░ рдЬрдЧрд╣ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдк Element рд╕реЗ рдЖрдпрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдореБрдЭреЗ рдорд┐рд▓рддрд╛ рд╣реИ 'рддрддреНрд╡ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ' рдореИрдВ рдЪрд╛рдп рдХреЗ рд╕рд╛рде рдПрдВрдЬрд╛рдЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЖрдкрдХреЛ рдЕрдкрдиреЗ tsconfig libs рдореЗрдВ Element рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

рдЕрд░реНрдерд╛рдд
рдбреЛрдо'

@ qmg-JamesT рдпрд╣ рд╡реИрд╢реНрд╡рд┐рдХ рддрддреНрд╡ рд╡рд░реНрдЧ рд╣реИ рдЬрд╣рд╛рдВ рдЕрдиреНрдп рддрддреНрд╡реЛрдВ рдХреЛ рд╕реНрдХреНрд░реЙрд▓рдЗрдиреНрдЯреЛрд╡реНрдпреВ рд╡рд┐рдзрд┐ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред

рдирдорд╕реНрддреЗ, рдХреНрдпрд╛ рдЬреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ?

рд╣реИрд▓реЛ, рдЖрдк window.HTMLElement.prototype.scrollIntoView = jest.fn() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдореБрдЭреЗ Element.prototype.scroll = jest.fn() рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

@enessoylu рдФрд░ @msmetana рдЖрдк рдкреНрд░рддреНрдпреЗрдХ .test рдореЗрдВ Element.prototype.scrollIntoView = jest.fn() рдбрд╛рд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рдХрд╣рд╛рдВ рджреЗрддреЗ рд╣реИрдВред

рд╕реАрдЖрд░рдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдХ setupTest.ts рд╣реИ, рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди idk

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

Element.prototype.scroll = jest.fn()

ava рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдзрд╛рд╡рдХ рдХреЗ рд▓рд┐рдП рдЖрдк window.HTMLElement.prototype.scrollIntoView = () => {} рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ test.beforeEach() рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛:

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

рдПрдХ рдмрд╛рд░ setupJest.ts . рдореЗрдВ

рдпрд╣ scroll . рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ

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

рдзрдиреНрдпрд╡рд╛рдж! рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдЗрд╕рдХреЛ рдЖрдЬрдорд╛рдУ..
window.HTMLElement.prototype.scrollIntoView = function() {};

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jacekpl picture jacekpl  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lehni picture lehni  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JacksonGariety picture JacksonGariety  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

philipwalton picture philipwalton  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

potapovDim picture potapovDim  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ