feat(web): set up Storybook (preview + MSW + stories for real components)

This commit is contained in:
2026-06-05 16:55:40 +02:00
parent 4e1138f8ce
commit b2d026f217
17 changed files with 2400 additions and 30 deletions
+42 -14
View File
@@ -3,29 +3,57 @@ import tailwindcss from "@tailwindcss/vite";
import react from "@vitejs/plugin-react";
import path from "node:path";
import { defineConfig } from "vite";
import { fileURLToPath } from 'node:url';
import { storybookTest } from '@storybook/addon-vitest/vitest-plugin';
const dirname = typeof __dirname !== 'undefined' ? __dirname : path.dirname(fileURLToPath(import.meta.url));
// More info at: https://storybook.js.org/docs/next/writing-tests/integrations/vitest-addon
export default defineConfig({
plugins: [react(), tailwindcss()],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
"@": path.resolve(__dirname, "./src")
}
},
server: {
proxy: {
"/api": "http://localhost:8080",
"/api-docs": "http://localhost:8080",
"/health": "http://localhost:8080",
},
"/health": "http://localhost:8080"
}
},
test: {
environment: "jsdom",
globals: true,
setupFiles: ["./src/test/setup.ts"],
environmentOptions: {
jsdom: {
url: "http://localhost",
},
},
},
});
projects: [{
extends: true,
test: {
environment: "jsdom",
globals: true,
setupFiles: ["./src/test/setup.ts"],
environmentOptions: {
jsdom: {
url: "http://localhost"
}
}
}
}, {
extends: true,
plugins: [
// The plugin will run tests for the stories defined in your Storybook config
// See options at: https://storybook.js.org/docs/next/writing-tests/integrations/vitest-addon#storybooktest
storybookTest({
configDir: path.join(dirname, '.storybook')
})],
test: {
name: 'storybook',
browser: {
enabled: true,
headless: true,
provider: 'playwright',
instances: [{
browser: 'chromium'
}]
}
}
}]
}
});