bkdragon's log

Storybook Interactions Portal Component 본문

React

Storybook Interactions Portal Component

bkdragon 2024. 11. 17. 15:43

Portal을 사용해서 렌더링하는 컴포넌트는 play 함수의 canvasElement 내에 없기 때문에 찾을 수 없다.

따라서 @storybook/test에서 제공하는 screen을 사용해줘야 한다.

import {  expect, screen, waitFor, fireEvent, fn } from "@storybook/test";

export const Default: Story = {
    name: "모달 창 기본",
    args: {
        onClose: fn(),
        isOpen: true,
    },
    play: async ({ args, _ }) => {
        await waitFor(() => {
            expect(screen.getByTestId("close-button")).toBeInTheDocument();
        });

        const closeButton = screen.getByTestId("close-button");
        fireEvent.click(closeButton);
        expect(args.onClose).toHaveBeenCalledTimes(1);
    },
};

이렇게 해야 버튼을 찾을 수 있다.

'React' 카테고리의 다른 글

Web Speech API  (1) 2024.11.26
forwardRef  (0) 2024.11.20
Storybook Interactions  (0) 2024.11.16
children 을 함수해서 동적으로 스타일을 지정하기  (0) 2024.11.14
드래그 가능한 모달창 만들기  (0) 2024.11.11