Skip to content

Commit 30afa13

Browse files
committed
chore: add testing and coverage configuration with Vitest integration
1 parent 23ebeea commit 30afa13

File tree

9 files changed

+68
-6
lines changed

9 files changed

+68
-6
lines changed

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,18 @@
1414
"build": "turbo build",
1515
"dev": "turbo dev",
1616
"dev:apps": "turbo dev --filter=\"./apps/*\"",
17-
"lint": "turbo lint"
17+
"lint": "turbo lint",
18+
"test": "turbo test",
19+
"test:ui": "turbo test -- --ui",
20+
"coverage": "turbo test -- --coverage"
1821
},
1922
"devDependencies": {
2023
"@ant-design-vue/eslint-config": "*",
2124
"@ant-design-vue/prettier-config": "*",
2225
"@ant-design-vue/typescript-config": "*",
2326
"@types/node": "^20.0.0",
2427
"eslint": "^8.56.0",
28+
"vitest": "^3.2.4",
2529
"prettier": "^3.3.3",
2630
"esbuild": "^0.25.8",
2731
"turbo": "^2.4.4",
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { UserConfig, UserConfigFnObject } from 'vite'
1+
import { UserConfigFnObject, ViteUserConfig } from 'vitest/config.js'
22

33
export type GetUserConfig = (
44
dirname: string,
55
overwriteLib?: boolean,
6-
) => UserConfig | UserConfigFnObject
6+
) => ViteUserConfig | UserConfigFnObject
77

88
export declare function extendsConfig(
9-
base: UserConfig | UserConfigFnObject,
10-
overwrite: UserConfig | UserConfigFnObject,
9+
base: ViteUserConfig | UserConfigFnObject,
10+
overwrite: ViteUserConfig | UserConfigFnObject,
1111
): UserConfigFnObject

packages-config/vite-config/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,14 @@
2121
"@types/node": "^20.0.0",
2222
"@vitejs/plugin-vue": "^5.1.3",
2323
"vite": "^5.3.5",
24+
"vitest": "^3.2.4",
2425
"vite-plugin-dts": "^4.5.4"
2526
},
2627
"peerDependencies": {
2728
"@vitejs/plugin-vue": "*",
2829
"typescript": "*",
2930
"vite": "5",
31+
"vitest": "3",
3032
"vite-plugin-dts": "*"
3133
}
3234
}

packages/ui/package.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
"dev": "vite build --watch --mode development",
2323
"lint": "eslint . --fix",
2424
"tsc": "tsc --noEmit",
25-
"tsg": "tsc --declaration --declarationMap --emitDeclarationOnly --noEmit false --outDir dist/types"
25+
"tsg": "tsc --declaration --declarationMap --emitDeclarationOnly --noEmit false --outDir dist/types",
26+
"test": "vitest"
2627
},
2728
"type": "module",
2829
"exports": {
@@ -83,11 +84,17 @@
8384
"@ant-design-vue/tailwind-config": "*",
8485
"@tailwindcss/vite": "^4.1.3",
8586
"@vitejs/plugin-vue": "^5.1.3",
87+
"@vitest/coverage-v8": "^3.2.4",
88+
"@vitest/ui": "^3.2.4",
89+
"@vue/test-utils": "^2.4.6",
90+
"vitest-fetch-mock": "^0.4.5",
91+
"jsdom": "^26.0.0",
8692
"@vueuse/core": "^12.0.0",
8793
"@types/node": "^20.19.7",
8894
"prettier-plugin-tailwindcss": "^0.6.11",
8995
"tailwindcss": "^4.0.14",
9096
"typescript": "^5.8.2",
97+
"vitest": "^3.2.4",
9198
"vite": "^5.3.5",
9299
"vite-plugin-dts": "^4.5.4",
93100
"vite-svg-loader": "^5.1.0",
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2+
3+
exports[`Button > should render correctly 1`] = `
4+
"<button class="ant-btn ant-btn-solid ant-btn-md">
5+
<!--v-if-->
6+
<!--v-if--><span></span>
7+
</button>"
8+
`;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
2+
import { Button } from '@ant-design-vue/ui'
3+
import { mount } from '@vue/test-utils'
4+
5+
describe('Button', () => {
6+
it('should render correctly', () => {
7+
const wrapper = mount(Button)
8+
expect(wrapper.html()).toMatchSnapshot()
9+
})
10+
})

packages/ui/test/setup.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { vi } from 'vitest'
2+
import { config } from '@vue/test-utils'
3+
import createFetchMock from 'vitest-fetch-mock'
4+
5+
const fetchMock = createFetchMock(vi)
6+
fetchMock.enableMocks()
7+
8+
config.global.plugins = []

packages/ui/vite.config.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { resolve } from 'node:path'
44
import tailwindcss from '@tailwindcss/vite'
55
import { readdirSync, statSync } from 'node:fs'
66
import dts from 'vite-plugin-dts'
7+
import pkg from './package.json'
78

89
// 获取所有组件目录
910
function getComponents() {
@@ -34,6 +35,21 @@ export default extendsConfig(vue(__dirname, true), {
3435
},
3536
},
3637
plugins: [tailwindcss()],
38+
test: {
39+
alias: {
40+
[pkg.name]: resolve(__dirname, './src'),
41+
},
42+
globals: true,
43+
environment: 'jsdom',
44+
testTimeout: 5000,
45+
coverage: {
46+
include: ['src/**/*.{ts,vue}'],
47+
provider: 'v8',
48+
allowExternal: true,
49+
reporter: ['text', 'json', 'html'],
50+
},
51+
setupFiles: [resolve(__dirname, './test/setup.ts')],
52+
},
3753
build: {
3854
cssCodeSplit: true,
3955
lib: {

vitest.config.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { defineConfig } from 'vitest/config'
2+
3+
export default defineConfig({
4+
test: {
5+
projects: ['packages/*'],
6+
},
7+
})

0 commit comments

Comments
 (0)