如何模拟一个Escape事件,在react中使用该事件监听窗口上的事件(enzyme & jest)

m1m5dgzv  于 2022-12-08  发布在  Jest
关注(0)|答案(1)|浏览(192)

尽管我可以在网上找到所有的东西,但仍然没有找到一个关于如何模拟Escape键盘事件的工作解决方案。

import React, { useEffect } from "react";
import "./styles.css";

export default function App() {
   useEffect(() => {
     window.addEventListener("keydown", (event) => {
      console.log(event);
    });
   return () => {
      window.removeEventListener("keydown", (event) => {
       console.log(event);
     });
  };
},  []);

return <div className="App">click a key</div>;}

我有大多数材料UI组件,如对话框,图标按钮,框,排版,...不能依赖于输入字段link to a codesandbox

ijxebb2r

ijxebb2r1#

it('calls setShowModal on escape key', () => {
    render(<ModalPopUp {...props}>children</ModalPopUp>)
    const event = new KeyboardEvent('keydown', { key: 'Escape' })
    document.dispatchEvent(event)
    expect(props.setShowModal).toBeCalled()
  })

你可以这样使用它

相关问题