hookehuyr

chore: 添加测试框架和更新项目文档

- 配置 Vitest 测试框架
- 添加 search/index.test.js 测试套件
- 更新 README.md 和 MaterialCard 组件文档
- 更新 pnpm 依赖

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
...@@ -45,6 +45,13 @@ pnpm lint ...@@ -45,6 +45,13 @@ pnpm lint
45 -**组件复用** - "第 3 次出现原则"抽取 Composables 45 -**组件复用** - "第 3 次出现原则"抽取 Composables
46 -**可复用组件** - TabBar、NavHeader、IconFont 46 -**可复用组件** - TabBar、NavHeader、IconFont
47 47
48 +## 🆕 最新更新(2026-02-13)
49 +
50 +### 权限与测试
51 +-**资料查看权限** - 资料查看入口增加登录校验,支持动作级权限扩展
52 +-**回跳路径统一** - 统一保存登录回跳路径,确保权限拦截后可恢复
53 +-**搜索页测试** - 搜索页测试对齐当前实现并补充接口 Mock
54 +
48 ## 🆕 最新更新(2026-02-12) 55 ## 🆕 最新更新(2026-02-12)
49 56
50 ### 计划书功能优化 57 ### 计划书功能优化
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
28 "dev:quickapp": "NODE_ENV=development taro build --type quickapp --watch", 28 "dev:quickapp": "NODE_ENV=development taro build --type quickapp --watch",
29 "postinstall": "weapp-tw patch", 29 "postinstall": "weapp-tw patch",
30 "lint": "eslint --ext .js,.vue src", 30 "lint": "eslint --ext .js,.vue src",
31 + "test": "vitest run",
31 "api:generate": "node scripts/generateApiFromOpenAPI.js", 32 "api:generate": "node scripts/generateApiFromOpenAPI.js",
32 "changelog:check": "bash scripts/check-changelog.sh 7", 33 "changelog:check": "bash scripts/check-changelog.sh 7",
33 "changelog:check:30": "bash scripts/check-changelog.sh 30", 34 "changelog:check:30": "bash scripts/check-changelog.sh 30",
...@@ -77,8 +78,10 @@ ...@@ -77,8 +78,10 @@
77 "@tarojs/taro-loader": "4.1.11", 78 "@tarojs/taro-loader": "4.1.11",
78 "@tarojs/webpack5-runner": "4.1.11", 79 "@tarojs/webpack5-runner": "4.1.11",
79 "@types/webpack-env": "^1.13.6", 80 "@types/webpack-env": "^1.13.6",
81 + "@vitejs/plugin-vue": "^5.2.4",
80 "@vue/babel-plugin-jsx": "^1.0.6", 82 "@vue/babel-plugin-jsx": "^1.0.6",
81 "@vue/compiler-sfc": "^3.0.0", 83 "@vue/compiler-sfc": "^3.0.0",
84 + "@vue/test-utils": "^2.4.6",
82 "autoprefixer": "^10.4.21", 85 "autoprefixer": "^10.4.21",
83 "babel-preset-taro": "4.1.11", 86 "babel-preset-taro": "4.1.11",
84 "css-loader": "3.4.2", 87 "css-loader": "3.4.2",
...@@ -87,6 +90,7 @@ ...@@ -87,6 +90,7 @@
87 "eslint-plugin-react": "^7.33.2", 90 "eslint-plugin-react": "^7.33.2",
88 "eslint-plugin-react-hooks": "^4.4.0", 91 "eslint-plugin-react-hooks": "^4.4.0",
89 "eslint-plugin-vue": "^8.0.0", 92 "eslint-plugin-vue": "^8.0.0",
93 + "happy-dom": "^14.12.0",
90 "husky": "^9.1.7", 94 "husky": "^9.1.7",
91 "js-yaml": "^4.1.1", 95 "js-yaml": "^4.1.1",
92 "less": "^4.2.0", 96 "less": "^4.2.0",
...@@ -99,7 +103,8 @@ ...@@ -99,7 +103,8 @@
99 "vue-eslint-parser": "^9.0.0", 103 "vue-eslint-parser": "^9.0.0",
100 "vue-loader": "^17.0.0", 104 "vue-loader": "^17.0.0",
101 "weapp-tailwindcss": "^4.1.10", 105 "weapp-tailwindcss": "^4.1.10",
102 - "webpack": "5.91.0" 106 + "webpack": "5.91.0",
107 + "vitest": "^1.6.0"
103 }, 108 },
104 "pnpm": { 109 "pnpm": {
105 "onlyBuiltDependencies": [ 110 "onlyBuiltDependencies": [
......
This diff is collapsed. Click to expand it.
...@@ -169,12 +169,13 @@ const { handleClick } = useListItemClick({ ...@@ -169,12 +169,13 @@ const { handleClick } = useListItemClick({
169 // 通知父组件查看完成 169 // 通知父组件查看完成
170 emit('viewed', item) 170 emit('viewed', item)
171 } 171 }
172 -}) 172 +});
173 173
174 /** 174 /**
175 * 处理查看点击 175 * 处理查看点击
176 * 176 *
177 * @description 内部处理查看逻辑,调用 useListItemClick 177 * @description 内部处理查看逻辑,调用 useListItemClick
178 + * 注意:权限检查和埋点由 ListItemActions 组件内部处理
178 */ 179 */
179 const handleView = () => { 180 const handleView = () => {
180 handleClick({ 181 handleClick({
......
This diff is collapsed. Click to expand it.