Skip to content

Commit ec6b368

Browse files
committed
storybook作り直した
1 parent 45d092a commit ec6b368

File tree

8 files changed

+604
-237
lines changed

8 files changed

+604
-237
lines changed

packages/react-components/.storybook/main.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { dirname, join } from "node:path";
21
import type { StorybookConfig } from "@storybook/react-vite";
32

3+
import { dirname, join } from "path";
4+
45
/**
56
* この関数はパッケージの絶対パスを解決するために使用されます。
67
* Yarn PnPを使用するプロジェクトやモノレポ内で設定されたプロジェクトで必要です。
@@ -10,14 +11,13 @@ const getAbsolutePath: GetAbsolutePath = (value) => {
1011
return dirname(require.resolve(join(value, "package.json")));
1112
};
1213

13-
/** @private */
1414
export default {
15-
stories: ["../src/**/*.stories.tsx"],
15+
stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"],
1616
addons: [
17+
getAbsolutePath("@storybook/addon-essentials"),
18+
getAbsolutePath("@storybook/addon-onboarding"),
1719
getAbsolutePath("@chromatic-com/storybook"),
18-
getAbsolutePath("@storybook/addon-docs"),
19-
getAbsolutePath("@storybook/addon-a11y"),
20-
getAbsolutePath("@storybook/addon-vitest"),
20+
getAbsolutePath("@storybook/experimental-addon-test"),
2121
getAbsolutePath("storybook-dark-mode"),
2222
],
2323
framework: {

packages/react-components/.storybook/preview.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import type { Preview } from "@storybook/react-vite";
1+
import type { Preview } from "@storybook/react";
22
import "../src/globals.css";
33

4-
/** @private */
54
export default {
65
parameters: {
76
darkMode: {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { setProjectAnnotations } from "@storybook/react";
2+
import { beforeAll } from "vitest";
3+
import * as projectAnnotations from "./preview";
4+
5+
// This is an important step to apply the right configuration when testing your stories.
6+
// More info at: https://storybook.js.org/docs/api/portable-stories/portable-stories-vitest#setprojectannotations
7+
const project = setProjectAnnotations([projectAnnotations]);
8+
9+
beforeAll(project.beforeAll);

packages/react-components/package.json

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,16 @@
3131
},
3232
"devDependencies": {
3333
"@biomejs/biome": "2.0.6",
34-
"@chromatic-com/storybook": "4.0.1",
34+
"@chromatic-com/storybook": "^3.2.7",
3535
"@configs/common": "workspace:*",
3636
"@configs/react": "workspace:*",
37-
"@storybook/addon-a11y": "8.6.14",
38-
"@storybook/addon-docs": "8.6.14",
39-
"@storybook/addon-vitest": "8.6.14",
37+
"@storybook/addon-essentials": "^8.6.14",
38+
"@storybook/addon-onboarding": "8.6.14",
39+
"@storybook/blocks": "^8.6.14",
40+
"@storybook/experimental-addon-test": "^8.6.14",
41+
"@storybook/react": "8.6.14",
4042
"@storybook/react-vite": "8.6.14",
41-
"@storybook/types": "8.6.14",
43+
"@storybook/test": "^8.6.14",
4244
"@tsconfig/node-lts": "22.0.2",
4345
"@types/react": "19.1.8",
4446
"@types/react-dom": "19.1.6",

packages/react-components/src/components/button/button.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Meta, StoryObj } from "@storybook/react-vite";
1+
import type { Meta, StoryObj } from "@storybook/react";
22
import type { VariantProps } from "class-variance-authority";
33
import { Button, type buttonVariants } from "./button";
44

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/// <reference types="@vitest/browser/providers/playwright" />
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import path from "node:path";
2+
import { fileURLToPath } from "node:url";
3+
import { storybookTest } from "@storybook/experimental-addon-test/vitest-plugin";
4+
import { defineWorkspace } from "vitest/config";
5+
6+
const dirname =
7+
typeof __dirname !== "undefined"
8+
? __dirname
9+
: path.dirname(fileURLToPath(import.meta.url));
10+
11+
// More info at: https://storybook.js.org/docs/writing-tests/test-addon
12+
export default defineWorkspace([
13+
"vite.config.ts",
14+
{
15+
extends: "vite.config.ts",
16+
plugins: [
17+
// The plugin will run tests for the stories defined in your Storybook config
18+
// See options at: https://storybook.js.org/docs/writing-tests/test-addon#storybooktest
19+
storybookTest({ configDir: path.join(dirname, ".storybook") }),
20+
],
21+
test: {
22+
name: "storybook",
23+
browser: {
24+
enabled: true,
25+
headless: true,
26+
provider: "playwright",
27+
instances: [{ browser: "chromium" }],
28+
},
29+
setupFiles: [".storybook/vitest.setup.ts"],
30+
},
31+
},
32+
]);

0 commit comments

Comments
 (0)