Jsdom: document.activeElement jsdom 15/16 (jest 25) рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп рд╣реЛрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдорд╛рд░реНрдЪ 2020  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: jsdom/jsdom

рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рдирдХрд╛рд░реА:

рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП expect(document.activeElement).toBe(myElement) рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рдЬреЗрд╕реНрдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рддрддреНрд╡ рдмрд╛рддрдЪреАрдд рдХреЗ рдмрд╛рдж рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЗрдВрджреНрд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЬреЗрд╕реНрдЯ 25 (jsdom 15) рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдРрд╕реЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЯреВрдЯ рдЧрдП, document.activeElement рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ jsDom 16 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рднреА рдпрд╣реА рд╕реНрдерд┐рддрд┐ рд╣реИред

рдЬреЗрд╕реНрдЯ рдЯреАрдо рдиреЗ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдХреА

  • Node.js рд╕рдВрд╕реНрдХрд░рдг: 10.19.0
  • jsdom рд╕рдВрд╕реНрдХрд░рдг: 15 рдФрд░ 16
  • рдордЬрд╝рд╛рдХ рд╕рдВрд╕реНрдХрд░рдг: 25.1.0

рдиреНрдпреВрдирддрдо рдкреНрд░рдЬрдирди рдорд╛рдорд▓рд╛

import * as React from 'react';

it('should find active element', () => {
    const wrapper = mount(<input />);
    const inputNode = wrapper.find('input').getDOMNode();
    expect(document.activeElement).not.toBe(inputNode);
    inputNode.focus();
    expect(document.activeElement).toBe(inputNode); // fails here with expected being null
});

рд╕рдорд╛рди рдХреЛрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ?

рдХреЗрдВрджреНрд░рд┐рдд рддрддреНрд╡ document.activeElement рдореЗрдВ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

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

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ; рдпрд╣ рдЕрдорд╛рдиреНрдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ рдкреЛрд╕реНрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рдПрдХ рдирдореВрдирд╛ рддреИрдпрд╛рд░ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рд╣рдо Node.js рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВред рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдПрдХ jsbin рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ред рдЙрд╕ рд╕рдордп рд╣рдо рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдПрдВрдЬрд╛рдЗрдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рд╛рдорд╛рди рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

https://runkit.com/wojtekmaj/jsdom-15-2-16-document-activeelement-issue-ok

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ #2586 рдХреЗ рд╕рд╛рде рдХрд╕рдХрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрднреА рднреА v15.2 рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рд╣реИ:

https://runkit.com/wojtekmaj/jsdom-15-2-16-document-activeelement-issue

рд╕рдВрдмрдВрдзрд┐рдд: рдПрдВрдЬрд╛рдЗрдордЬ/рдПрдВрдЬрд╛рдЗрдо#2337

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ activeElement рдХреЛ document рдмрд╛рд╣рд░ рдХрд┐рд╕реА рддрддреНрд╡ рдкрд░ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ jsdom рдХреА рдмрдврд╝рддреА рд╕рдЦреНрддреА рдХреЗ рдХрд╛рд░рдг рдмреНрд░реЗрдХ рд╣реБрдЖ рд╣реИред рдорд╛рдЙрдВрдЯ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП attachTo рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд┐рдХреНрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдкрд░ рд╣реИред

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

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

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

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

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

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

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