This repository was archived by the owner on Jan 31, 2024. It is now read-only.
v1.0.0
🎉 This release contains work from new contributors! 🎉
Thanks for all your work!
❤️ Tom Coleman (@tmeasday)
Release Notes
Version 1.0.0 (#60)
💥 Breaking Change
Updates Storybook peer dependency to 6.4
Features
CSF3
Storybook 6.4 released a new version of CSF, where the story can also be an object. This is supported in @storybook/testing-react, but you have to match the requisites:
1 - Either your story has a render method or your meta contains a component property:
// Example 1: Meta with component property
export default {
title: 'Button',
component: Button // <-- This is strictly necessary
}
// Example 2: Story with render method:
export const Primary = {
render: (args) => <Button {...args}>
}Play function
Storybook 6.4 also brings a new function called play, where you can write automated interactions to the story.
In @storybook/testing-react, the play function does not run automatically for you, but rather comes in the returned component, and you can execute it as you please.
Consider the following example:
export const InputFieldFilled: Story<InputFieldProps> = {
play: async ({ canvasElement }) => {
const canvas = within(canvasElement);
await userEvent.type(canvas.getByRole('textbox'), 'Hello world!');
},
};You can use the play function like this:
const { InputFieldFilled } = composeStories(stories);
test('renders with play function', async () => {
const { container } = render(<InputFieldFilled />);
// pass container as canvasElement and play an interaction that fills the input
await InputFieldFilled.play({ canvasElement: container });
const input = screen.getByRole('textbox') as HTMLInputElement;
expect(input.value).toEqual('Hello world!');
});📝 Documentation
- Chore: (Docs) Updates the assets used in the documentation for the addon #52 (@jonniebigodes)
Authors: 3
- @jonniebigodes
- Tom Coleman (@tmeasday)
- Yann Braga (@yannbf)