storybook/docs/snippets/vue/my-component-play-function-waitfor.mdx.mdx
2021-11-03 23:31:14 +00:00

38 lines
953 B
Plaintext

```md
<!-- MyComponent.stories.mdx -->
import { Meta, Story } from '@storybook/addon-docs';
import { screen, userEvent, waitFor } from '@storybook/testing-library';
import MyComponent from './MyComponent.vue';
<Meta title="WithAsync" component={MyComponent} />
export const Template = (args) => ({
components: { MyComponent },
template: '<MyComponent />',
});
<Story
name="ExampleAsyncStory"
play={async () => {
const Input = screen.getByLabelText('Username', {
selector: 'input',
});
await userEvent.type(Input, 'WrongInput', {
delay: 100,
});
// See https://storybook.js.org/docs/vue/essentials/actions#automatically-matching-args to learn how to setup logging in the Actions panel
const Submit = screen.getByRole('button');
await userEvent.click(Submit);
await waitFor(async () => {
await userEvent.hover(screen.getByTestId('error'));
});
}}>
{Template.bind({})}
</Story>
```