diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml index f7f7d115..d68308e1 100644 --- a/.github/workflows/coverage.yaml +++ b/.github/workflows/coverage.yaml @@ -23,7 +23,7 @@ jobs: - name: 의존성 설치 run: pnpm install - name: 테스트 - run: pnpm vitest --coverage + run: pnpm run test --coverage - name: 코드커버리지 업로드 uses: codecov/codecov-action@v5 with: diff --git a/packages/badge/src/env.d.ts b/.templates/component/global.d.ts similarity index 100% rename from packages/badge/src/env.d.ts rename to .templates/component/global.d.ts diff --git a/.templates/component/vitest.config.ts b/.templates/component/vitest.config.ts index 7bfa9a8d..a9178275 100644 --- a/.templates/component/vitest.config.ts +++ b/.templates/component/vitest.config.ts @@ -1,9 +1,11 @@ -import { defineConfig } from 'vitest/config'; +import { defineProject, mergeConfig } from 'vitest/config'; +import defaultConfig from '../../vitest.config'; -export default defineConfig({ - test: { - environment: 'happy-dom', - passWithNoTests: true, - watch: false, - }, -}); +export default mergeConfig( + defaultConfig, + defineProject({ + test: { + setupFiles: './vitest.setup.ts', + }, + }), +); diff --git a/package.json b/package.json index 0633185c..6bc69e25 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "type": "module", "scripts": { "build:storybook": "storybook build", - "dev:storybook": "storybook dev -p 6006" + "dev:storybook": "storybook dev -p 6006", + "test": "vitest" }, "devDependencies": { "@biomejs/biome": "^1.9.4", @@ -19,7 +20,7 @@ "@tsconfig/strictest": "^2.0.5", "@types/node": "^22.8.1", "@typescript-eslint/parser": "^8.19.0", - "@vitest/coverage-v8": "2.1.4", + "@vitest/coverage-v8": "catalog:", "chromatic": "^11.19.0", "eslint": "^9.17.0", "knip": "catalog:", @@ -27,7 +28,7 @@ "storybook": "catalog:", "tsup": "catalog:", "typescript": "catalog:", - "vitest": "^2.1.8" + "vitest": "catalog:" }, "packageManager": "pnpm@9.7.1" } diff --git a/packages/card/src/env.d.ts b/packages/Input/global.d.ts similarity index 100% rename from packages/card/src/env.d.ts rename to packages/Input/global.d.ts diff --git a/packages/Input/src/env.d.ts b/packages/Input/src/env.d.ts deleted file mode 100644 index 272d2d58..00000000 --- a/packages/Input/src/env.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module '*.module.css'; \ No newline at end of file diff --git a/packages/Input/vitest.config.ts b/packages/Input/vitest.config.ts index bd5bbd3c..a9178275 100644 --- a/packages/Input/vitest.config.ts +++ b/packages/Input/vitest.config.ts @@ -1,12 +1,11 @@ -import { defineConfig } from 'vitest/config'; +import { defineProject, mergeConfig } from 'vitest/config'; +import defaultConfig from '../../vitest.config'; -export default defineConfig({ - test: { - environment: 'happy-dom', - globals: true, - passWithNoTests: true, - setupFiles: './vitest.setup.ts', - watch: false, - css: true, - }, -}); +export default mergeConfig( + defaultConfig, + defineProject({ + test: { + setupFiles: './vitest.setup.ts', + }, + }), +); diff --git a/packages/divider/env.d.ts b/packages/badge/global.d.ts similarity index 100% rename from packages/divider/env.d.ts rename to packages/badge/global.d.ts diff --git a/packages/badge/package.json b/packages/badge/package.json index d4b65b4c..22ace603 100644 --- a/packages/badge/package.json +++ b/packages/badge/package.json @@ -35,7 +35,6 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.0.1", "@types/react": "^18.3.12", - "@vitest/coverage-v8": "2.1.4", "happy-dom": "catalog:", "react": "^18.3.1", "sanitize.css": "^13.0.0", diff --git a/packages/badge/vitest.config.ts b/packages/badge/vitest.config.ts index 2e5a4f70..a9178275 100644 --- a/packages/badge/vitest.config.ts +++ b/packages/badge/vitest.config.ts @@ -1,16 +1,11 @@ -import { defineConfig } from 'vitest/config'; +import { defineProject, mergeConfig } from 'vitest/config'; +import defaultConfig from '../../vitest.config'; -export default defineConfig({ - test: { - coverage: { - include: ['./src/**/*.{ts,tsx}'], - exclude: ['./src/**/*.stories.tsx', './src/env.d.ts', './src/index.ts'], +export default mergeConfig( + defaultConfig, + defineProject({ + test: { + setupFiles: './vitest.setup.ts', }, - css: true, - environment: 'happy-dom', - globals: true, - passWithNoTests: true, - setupFiles: './vitest.setup.ts', - watch: false, - }, -}); + }), +); diff --git a/packages/radio-group/src/env.d.ts b/packages/card/global.d.ts similarity index 100% rename from packages/radio-group/src/env.d.ts rename to packages/card/global.d.ts diff --git a/packages/card/package.json b/packages/card/package.json index ee504574..0085052a 100644 --- a/packages/card/package.json +++ b/packages/card/package.json @@ -36,7 +36,6 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.0.1", "@types/react": "^18.3.12", - "@vitest/coverage-v8": "2.1.4", "happy-dom": "catalog:", "react": "^18.3.1", "sanitize.css": "^13.0.0", diff --git a/packages/card/vitest.config.ts b/packages/card/vitest.config.ts index 2e5a4f70..a9178275 100644 --- a/packages/card/vitest.config.ts +++ b/packages/card/vitest.config.ts @@ -1,16 +1,11 @@ -import { defineConfig } from 'vitest/config'; +import { defineProject, mergeConfig } from 'vitest/config'; +import defaultConfig from '../../vitest.config'; -export default defineConfig({ - test: { - coverage: { - include: ['./src/**/*.{ts,tsx}'], - exclude: ['./src/**/*.stories.tsx', './src/env.d.ts', './src/index.ts'], +export default mergeConfig( + defaultConfig, + defineProject({ + test: { + setupFiles: './vitest.setup.ts', }, - css: true, - environment: 'happy-dom', - globals: true, - passWithNoTests: true, - setupFiles: './vitest.setup.ts', - watch: false, - }, -}); + }), +); diff --git a/packages/skeleton/src/env.d.ts b/packages/divider/global.d.ts similarity index 100% rename from packages/skeleton/src/env.d.ts rename to packages/divider/global.d.ts diff --git a/packages/divider/src/Divider.stories.tsx b/packages/divider/src/Divider.stories.tsx index ea376f19..82178efd 100644 --- a/packages/divider/src/Divider.stories.tsx +++ b/packages/divider/src/Divider.stories.tsx @@ -3,6 +3,7 @@ import type { Meta, StoryObj } from '@storybook/react'; import { Divider } from './Divider'; const meta = { + title: 'Divider', component: Divider, parameters: { layout: 'centered', diff --git a/packages/divider/vitest.config.ts b/packages/divider/vitest.config.ts index bd5bbd3c..a9178275 100644 --- a/packages/divider/vitest.config.ts +++ b/packages/divider/vitest.config.ts @@ -1,12 +1,11 @@ -import { defineConfig } from 'vitest/config'; +import { defineProject, mergeConfig } from 'vitest/config'; +import defaultConfig from '../../vitest.config'; -export default defineConfig({ - test: { - environment: 'happy-dom', - globals: true, - passWithNoTests: true, - setupFiles: './vitest.setup.ts', - watch: false, - css: true, - }, -}); +export default mergeConfig( + defaultConfig, + defineProject({ + test: { + setupFiles: './vitest.setup.ts', + }, + }), +); diff --git a/packages/switch/src/env.d.ts b/packages/radio-group/global.d.ts similarity index 100% rename from packages/switch/src/env.d.ts rename to packages/radio-group/global.d.ts diff --git a/packages/radio-group/src/RadioGroup.stories.tsx b/packages/radio-group/src/RadioGroup.stories.tsx index 215729b5..e3051b15 100644 --- a/packages/radio-group/src/RadioGroup.stories.tsx +++ b/packages/radio-group/src/RadioGroup.stories.tsx @@ -4,6 +4,7 @@ import { Radio } from './Radio'; import { RadioGroup } from './RadioGroup'; const meta = { + title: 'RadioGroup', component: RadioGroup, parameters: { layout: 'centered', diff --git a/packages/radio-group/vitest.config.ts b/packages/radio-group/vitest.config.ts index e02068b0..a9178275 100644 --- a/packages/radio-group/vitest.config.ts +++ b/packages/radio-group/vitest.config.ts @@ -1,11 +1,11 @@ -import { defineConfig } from 'vitest/config'; +import { defineProject, mergeConfig } from 'vitest/config'; +import defaultConfig from '../../vitest.config'; -export default defineConfig({ - test: { - environment: 'happy-dom', - passWithNoTests: true, - watch: false, - setupFiles: ['./vitest.setup.ts'], - globals: true, - }, -}); +export default mergeConfig( + defaultConfig, + defineProject({ + test: { + setupFiles: './vitest.setup.ts', + }, + }), +); diff --git a/packages/tokens/env.d.ts b/packages/skeleton/global.d.ts similarity index 100% rename from packages/tokens/env.d.ts rename to packages/skeleton/global.d.ts diff --git a/packages/skeleton/vitest.config.ts b/packages/skeleton/vitest.config.ts index bd5bbd3c..a9178275 100644 --- a/packages/skeleton/vitest.config.ts +++ b/packages/skeleton/vitest.config.ts @@ -1,12 +1,11 @@ -import { defineConfig } from 'vitest/config'; +import { defineProject, mergeConfig } from 'vitest/config'; +import defaultConfig from '../../vitest.config'; -export default defineConfig({ - test: { - environment: 'happy-dom', - globals: true, - passWithNoTests: true, - setupFiles: './vitest.setup.ts', - watch: false, - css: true, - }, -}); +export default mergeConfig( + defaultConfig, + defineProject({ + test: { + setupFiles: './vitest.setup.ts', + }, + }), +); diff --git a/packages/tooltip/src/env.d.ts b/packages/switch/global.d.ts similarity index 100% rename from packages/tooltip/src/env.d.ts rename to packages/switch/global.d.ts diff --git a/packages/switch/vitest.config.ts b/packages/switch/vitest.config.ts index bd5bbd3c..a9178275 100644 --- a/packages/switch/vitest.config.ts +++ b/packages/switch/vitest.config.ts @@ -1,12 +1,11 @@ -import { defineConfig } from 'vitest/config'; +import { defineProject, mergeConfig } from 'vitest/config'; +import defaultConfig from '../../vitest.config'; -export default defineConfig({ - test: { - environment: 'happy-dom', - globals: true, - passWithNoTests: true, - setupFiles: './vitest.setup.ts', - watch: false, - css: true, - }, -}); +export default mergeConfig( + defaultConfig, + defineProject({ + test: { + setupFiles: './vitest.setup.ts', + }, + }), +); diff --git a/packages/typography/src/env.d.ts b/packages/tokens/global.d.ts similarity index 100% rename from packages/typography/src/env.d.ts rename to packages/tokens/global.d.ts diff --git a/packages/tooltip/global.d.ts b/packages/tooltip/global.d.ts new file mode 100644 index 00000000..60260a3a --- /dev/null +++ b/packages/tooltip/global.d.ts @@ -0,0 +1 @@ +declare module '*.module.css'; diff --git a/packages/tooltip/vitest.config.ts b/packages/tooltip/vitest.config.ts index bd5bbd3c..a9178275 100644 --- a/packages/tooltip/vitest.config.ts +++ b/packages/tooltip/vitest.config.ts @@ -1,12 +1,11 @@ -import { defineConfig } from 'vitest/config'; +import { defineProject, mergeConfig } from 'vitest/config'; +import defaultConfig from '../../vitest.config'; -export default defineConfig({ - test: { - environment: 'happy-dom', - globals: true, - passWithNoTests: true, - setupFiles: './vitest.setup.ts', - watch: false, - css: true, - }, -}); +export default mergeConfig( + defaultConfig, + defineProject({ + test: { + setupFiles: './vitest.setup.ts', + }, + }), +); diff --git a/packages/typography/global.d.ts b/packages/typography/global.d.ts new file mode 100644 index 00000000..60260a3a --- /dev/null +++ b/packages/typography/global.d.ts @@ -0,0 +1 @@ +declare module '*.module.css'; diff --git a/packages/typography/vitest.config.ts b/packages/typography/vitest.config.ts index bd5bbd3c..a9178275 100644 --- a/packages/typography/vitest.config.ts +++ b/packages/typography/vitest.config.ts @@ -1,12 +1,11 @@ -import { defineConfig } from 'vitest/config'; +import { defineProject, mergeConfig } from 'vitest/config'; +import defaultConfig from '../../vitest.config'; -export default defineConfig({ - test: { - environment: 'happy-dom', - globals: true, - passWithNoTests: true, - setupFiles: './vitest.setup.ts', - watch: false, - css: true, - }, -}); +export default mergeConfig( + defaultConfig, + defineProject({ + test: { + setupFiles: './vitest.setup.ts', + }, + }), +); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5166723a..2acfdcc0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,6 +27,9 @@ catalogs: '@storybook/test': specifier: ^8.4.5 version: 8.4.6 + '@vitest/coverage-v8': + specifier: ^2.1.8 + version: 2.1.8 happy-dom: specifier: ^15.7.4 version: 15.11.7 @@ -43,7 +46,7 @@ catalogs: specifier: ^5.6.3 version: 5.7.2 vitest: - specifier: ^2.1.4 + specifier: ^2.1.8 version: 2.1.8 importers: @@ -87,8 +90,8 @@ importers: specifier: ^8.19.0 version: 8.19.0(eslint@9.17.0(jiti@2.4.1))(typescript@5.7.2) '@vitest/coverage-v8': - specifier: 2.1.4 - version: 2.1.4(vitest@2.1.8(@types/node@22.10.1)(happy-dom@15.11.7)) + specifier: 'catalog:' + version: 2.1.8(vitest@2.1.8(@types/node@22.10.1)(happy-dom@15.11.7)) chromatic: specifier: ^11.19.0 version: 11.19.0 @@ -111,7 +114,7 @@ importers: specifier: 'catalog:' version: 5.7.2 vitest: - specifier: ^2.1.8 + specifier: 'catalog:' version: 2.1.8(@types/node@22.10.1)(happy-dom@15.11.7) .templates/component: @@ -259,9 +262,6 @@ importers: '@types/react': specifier: ^18.3.12 version: 18.3.13 - '@vitest/coverage-v8': - specifier: 2.1.4 - version: 2.1.4(vitest@2.1.8(@types/node@22.10.1)(happy-dom@15.11.7)) happy-dom: specifier: 'catalog:' version: 15.11.7 @@ -326,9 +326,6 @@ importers: '@types/react': specifier: ^18.3.12 version: 18.3.13 - '@vitest/coverage-v8': - specifier: 2.1.4 - version: 2.1.4(vitest@2.1.8(@types/node@22.10.1)(happy-dom@15.11.7)) happy-dom: specifier: 'catalog:' version: 15.11.7 @@ -1788,11 +1785,11 @@ packages: resolution: {integrity: sha512-mCFtBbFBJDCNCWUl5y6sZSCHXw1DEFEk3c/M3nRK2a4XUB8StGFtmcEMizdjKuBzB6e/smJAAWYug3VrdLMr1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@vitest/coverage-v8@2.1.4': - resolution: {integrity: sha512-FPKQuJfR6VTfcNMcGpqInmtJuVXFSCd9HQltYncfR01AzXhLucMEtQ5SinPdZxsT5x/5BK7I5qFJ5/ApGCmyTQ==} + '@vitest/coverage-v8@2.1.8': + resolution: {integrity: sha512-2Y7BPlKH18mAZYAW1tYByudlCYrQyl5RGvnnDYJKW5tCiO5qg3KSAy3XAxcxKz900a0ZXxWtKrMuZLe3lKBpJw==} peerDependencies: - '@vitest/browser': 2.1.4 - vitest: 2.1.4 + '@vitest/browser': 2.1.8 + vitest: 2.1.8 peerDependenciesMeta: '@vitest/browser': optional: true @@ -4274,7 +4271,7 @@ snapshots: '@typescript-eslint/types': 8.19.0 eslint-visitor-keys: 4.2.0 - '@vitest/coverage-v8@2.1.4(vitest@2.1.8(@types/node@22.10.1)(happy-dom@15.11.7))': + '@vitest/coverage-v8@2.1.8(vitest@2.1.8(@types/node@22.10.1)(happy-dom@15.11.7))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3258b307..2419879b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -10,9 +10,10 @@ catalog: '@storybook/react': ^8.4.5 '@storybook/react-vite': ^8.4.5 '@storybook/test': ^8.4.5 + '@vitest/coverage-v8': ^2.1.8 happy-dom: ^15.7.4 knip: ^5.34.1 storybook: ^8.4.5 tsup: ^8.3.5 typescript: ^5.6.3 - vitest: ^2.1.4 + vitest: ^2.1.8 diff --git a/vitest.config.ts b/vitest.config.ts index e32320a0..c740c330 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -3,25 +3,13 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { css: true, + environment: 'happy-dom', globals: true, passWithNoTests: true, watch: false, coverage: { - exclude: [ - '.templates/*', - '.storybook/*', - 'packages/*/src/*.stories.tsx', - 'packages/*/src/*.test.*', - 'packages/*/src/index.ts', - 'packages/*/src/*.d.ts', - 'packages/*/.storybook/*', - 'packages/*/coverage/*', - 'packages/*/vitest.setup.ts', - 'packages/*/dist/*', - 'packages/*/*.config.ts', - 'packages/*/*.d.ts', - '*.ts', - ], + include: ['**/src'], + exclude: ['.templates', '**/src/*.stories.tsx', '**/src/index.ts'], }, }, });