小编The*_*imp的帖子

如何测试 Material-UI Popover 关闭实现

我想确保我的Popover元素与触发按钮相结合的实现按预期工作。我无法进行工作测试来断言用户按 esc 后 Popover 会关闭。我能够使用 Modal 进行此测试,但我必须在当前项目中使用 Popover。

组件代码:

import {
    Button, Popover,
} from '@mui/material';
import React from 'react';

export default function SimpleModal() {
    const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null);

    const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
    setAnchorEl(event.currentTarget);
  };

  const handleClose = () => {
    setAnchorEl(null);
  };

  const open = Boolean(anchorEl);
  const id = open ? 'user-menu' : undefined;

    return (
        <>
            <Button
                aria-controls={id}
                aria-haspopup="true"
                onClick={handleClick}
            >
                Open Modal
            </Button>

            <Popover open={open} onClose={handleClose}>
                    <h1>Text in Modal</h1> …
Run Code Online (Sandbox Code Playgroud)

integration-testing reactjs jestjs material-ui react-testing-library

3
推荐指数
1
解决办法
5010
查看次数