diff --git a/package.json b/package.json index a173521..f50a671 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "lint": "eslint .", "test": "vitest", "preview": "vite preview", + "sb": "storybook dev -p 6006", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build", "prepare": "panda codegen" diff --git a/src/components/Button/Button.stories.ts b/src/components/Button/Button.stories.ts index d6f84de..2a7c90f 100644 --- a/src/components/Button/Button.stories.ts +++ b/src/components/Button/Button.stories.ts @@ -1,5 +1,5 @@ import type { Meta, StoryObj } from "@storybook/react"; -import { fn } from "@storybook/test"; +import { expect, fn, userEvent } from "@storybook/test"; import { Button } from "./Button"; const meta = { @@ -19,6 +19,18 @@ export const Basic: Story = { type: "button", children: "Click", }, + play: async ({ args: { onClick }, canvas, step }) => { + const button = canvas.getByRole("button"); + + await step("renders a button with text", async () => { + expect(button).toHaveTextContent("Click"); + }); + + await step("calls onClick handler when clicked", async () => { + await userEvent.click(button); + expect(onClick).toHaveBeenCalledTimes(1); + }); + }, }; export const Submit: Story = { diff --git a/src/components/Button/Button.test.tsx b/src/components/Button/Button.test.tsx deleted file mode 100644 index c375530..0000000 --- a/src/components/Button/Button.test.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { render, screen } from "@testing-library/react"; -import userEvent from "@testing-library/user-event"; -import { expect, describe, it, vi } from "vitest"; -import { Button } from "./Button"; - -describe("); - - expect(screen.getByRole("button")).toHaveTextContent("Click"); - }); - - it("calls onClick handler when clicked", async () => { - const user = userEvent.setup(); - const handleClick = vi.fn(); - - render(); - - await user.click(screen.getByRole("button")); - - expect(handleClick).toHaveBeenCalledTimes(1); - }); -});