Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
512 views
in Technique[技术] by (71.8m points)

reactjs - Testing onClose callback which is triggered by clicking outside component

The popup has a click away listener which closes it when a click event occurs outside the component. I need to test that the popup has closed.

it.only('clicking outside popover calls on close callback ', async () => {
    const onCloseCallback = jest.fn();
    const { queryByTestId, getByTestId, getByLabelText } = render(
      <Popup
        onClose={onCloseCallback}
      />
    );

    fireEvent.click(document);

    await waitFor(() => {
      expect(queryByTestId('Popup')).toBeNull();
      expect(onCloseCallback).toHaveBeenCalledTimes(1);
    });
  });

The Popup.tsx component

<Popper
      open={open}
      anchorEl={anchorEl}
      data-testid="Popup"
      placement="bottom-end"
      modifiers={{
        arrow: {
          enabled: true,
          ref: arrowRef
        },
        flip: {
          enabled: false
        }
      }}>
      <span className={classes.arrow} ref={arrowRef} />
      <ClickAwayListener onClickAway={handleClose}>
        {children}
      </ClickAwayListener>
    </Popper>
question from:https://stackoverflow.com/questions/66045453/testing-onclose-callback-which-is-triggered-by-clicking-outside-component

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...