storybookjs/storybook

[Bug]: Interactions panel fails when stepping through "waitForElementToBeRemoved" as the element's been removed

开放

#21,520 创建于 2023年3月9日

 (0 条评论) (0 个反应) (0 位负责人)TypeScript (10,058 个派生)batch import
addon: interactionsbughelp wantedsev:S3

仓库指标

星标
 (89,909 个星标)
PR 合并指标
 (平均合并 7天 22小时) (30 天内合并 184 个 PR)

描述

Describe the bug

This is tricky.

Suppose there's an element in a page, which gets removed in 500ms (e.g. loading spinner). When writing a play function that asserts for that element to be removed, like so:

play: async ({ canvasElement, step }) => {
    const canvas = within(canvasElement);
    await waitForElementToBeRemoved(await canvas.findByText('loading...'))
    await userEvent.click(getByRole('button')) // button is only visible after spinner is gone!
},

If you click to start on the step debugger, by the time you think of clicking on the next step, the spinner is already gone. This means that stepping through the steps will fail.

I'm not sure what's a solution to this scenario, or even if there is a good solution!

To Reproduce

No response

System

No response

Additional context

No response

贡献者指南