Skip to content
This repository was archived by the owner on Jan 31, 2024. It is now read-only.

v1.0.0

Choose a tag to compare

@yannbf yannbf released this 23 Nov 09:03
· 90 commits to main since this release

🎉 This release contains work from new contributors! 🎉

Thanks for all your work!

❤️ Tom Coleman (@tmeasday)

❤️ @jonniebigodes

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