mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-19 14:41:24 +08:00
* feat(i18n): 优化i18n check脚本 * fix: 移除重复的代码行和错误信息 * fix: 重新排序 * fix: i18n sort * test * test * test * test * test * test * feat(i18n): 添加同步翻译脚本并重构检查脚本 重构 check-i18n 脚本为纯检查功能,不再自动修改翻译文件 新增 sync-i18n 脚本用于自动同步翻译文件结构 更新 package.json 添加 sync:i18n 命令 移除不再需要的 husky pre-commit.js 钩子 * docs(i18n): 移除未使用的测试翻译文本 * feat(scripts): 添加对象键名排序功能及测试 添加 lexicalSort 函数和 sortedObjectByKeys 函数用于按字典序排序对象键名 新增测试用例验证排序功能 * feat(i18n): 添加翻译文件键值排序检查功能 添加对i18n翻译文件键值字典序的检查功能,确保翻译文件保持一致的排序结构 * refactor(i18n): 优化同步逻辑并添加键排序功能 移除syncRecursively的返回值检查,简化同步流程 添加对翻译文件的键排序功能,使用sortedObjectByKeys工具 确保主模板和翻译文件在同步后都保持有序 * fix(i18n): 重新排序翻译文件 * style(scripts): 格式化sort.js * chore: 将 test:sort 重命名为 test:scripts
84 lines
2.2 KiB
TypeScript
84 lines
2.2 KiB
TypeScript
import { defineConfig } from 'vitest/config'
|
|
|
|
import electronViteConfig from './electron.vite.config'
|
|
|
|
const mainConfig = (electronViteConfig as any).main
|
|
const rendererConfig = (electronViteConfig as any).renderer
|
|
|
|
export default defineConfig({
|
|
test: {
|
|
workspace: [
|
|
// 主进程单元测试配置
|
|
{
|
|
extends: true,
|
|
plugins: mainConfig.plugins,
|
|
resolve: {
|
|
alias: mainConfig.resolve.alias
|
|
},
|
|
test: {
|
|
name: 'main',
|
|
environment: 'node',
|
|
setupFiles: ['tests/main.setup.ts'],
|
|
include: ['src/main/**/*.{test,spec}.{ts,tsx}', 'src/main/**/__tests__/**/*.{test,spec}.{ts,tsx}']
|
|
}
|
|
},
|
|
// 渲染进程单元测试配置
|
|
{
|
|
extends: true,
|
|
plugins: rendererConfig.plugins,
|
|
resolve: {
|
|
alias: rendererConfig.resolve.alias
|
|
},
|
|
test: {
|
|
name: 'renderer',
|
|
environment: 'jsdom',
|
|
setupFiles: ['@vitest/web-worker', 'tests/renderer.setup.ts'],
|
|
include: ['src/renderer/**/*.{test,spec}.{ts,tsx}', 'src/renderer/**/__tests__/**/*.{test,spec}.{ts,tsx}']
|
|
}
|
|
},
|
|
// 脚本单元测试配置
|
|
{
|
|
extends: true,
|
|
test: {
|
|
name: 'scripts',
|
|
environment: 'node',
|
|
include: ['scripts/**/*.{test,spec}.{ts,tsx}', 'scripts/**/__tests__/**/*.{test,spec}.{ts,tsx}']
|
|
}
|
|
}
|
|
],
|
|
// 全局共享配置
|
|
globals: true,
|
|
setupFiles: [],
|
|
exclude: ['**/node_modules/**', '**/dist/**', '**/out/**', '**/build/**'],
|
|
coverage: {
|
|
provider: 'v8',
|
|
reporter: ['text', 'json', 'html', 'lcov', 'text-summary'],
|
|
exclude: [
|
|
'**/node_modules/**',
|
|
'**/dist/**',
|
|
'**/out/**',
|
|
'**/build/**',
|
|
'**/coverage/**',
|
|
'**/tests/**',
|
|
'**/.yarn/**',
|
|
'**/.cursor/**',
|
|
'**/.vscode/**',
|
|
'**/.github/**',
|
|
'**/.husky/**',
|
|
'**/*.d.ts',
|
|
'**/types/**',
|
|
'**/__tests__/**',
|
|
'**/*.{test,spec}.{ts,tsx}',
|
|
'**/*.config.{js,ts}'
|
|
]
|
|
},
|
|
testTimeout: 20000,
|
|
pool: 'threads',
|
|
poolOptions: {
|
|
threads: {
|
|
singleThread: false
|
|
}
|
|
}
|
|
}
|
|
})
|