Jsdom: document.activeElement selalu nol setelah memutakhirkan ke jsdom 15/16 (bercanda 25)

Dibuat pada 27 Mar 2020  ·  3Komentar  ·  Sumber: jsdom/jsdom

Info dasar:

Kami menggunakan tes lelucon dengan pola expect(document.activeElement).toBe(myElement) untuk menentukan apakah suatu elemen mendapat fokus yang benar setelah interaksi. Setelah memutakhirkan ke lelucon 25 (jsdom 15) semua tes tersebut rusak, document.activeElement tampaknya selalu nol. Begitu juga jika kita menjalankannya menggunakan jsDom 16.

Tim Jest menyarankan saya untuk membuka masalah di sini.

  • Versi Node.js: 10.19.0
  • versi jsdom: 15 dan 16
  • versi lelucon: 25.1.0

Kasus reproduksi minimal

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
});

Bagaimana kode serupa berperilaku di browser?

Elemen yang difokuskan harus tercermin dalam document.activeElement

Semua 3 komentar

Ini tidak mengikuti template masalah; ia menggunakan sintaks JavaScript yang tidak valid, dan merujuk pada fungsi yang tidak ditentukan.

Harap edit postingan untuk mengikuti template masalah, buat sampel yang dapat kami jalankan di Node.js sebagai satu file, lalu tambahkan komentar. Saya juga sangat menyarankan tautan ke jsbin atau yang serupa. Pada saat itu kami dapat membuka kembali dan mempertimbangkan masalah ini.

Menariknya, tanpa hal-hal yang berhubungan dengan enzim itu berfungsi dengan baik:

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

Namun, saya pikir itu mungkin terkait erat dengan #2586 yang masih merupakan regresi sejak v15.2:

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

Terkait: enzymejs/enzyme#2337

Sepertinya jeda disebabkan oleh peningkatan ketat jsdom tentang tidak menyetel activeElement ke elemen di luar document . Perbaikannya ada di sisi klien, menggunakan argumen attachTo ke panggilan mount.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

philipwalton picture philipwalton  ·  4Komentar

cg433n picture cg433n  ·  3Komentar

JacksonGariety picture JacksonGariety  ·  4Komentar

drewish picture drewish  ·  4Komentar

lehni picture lehni  ·  4Komentar