test(desktop): 前端单元 + 关键组件测试(Vitest + RTL,31 例)
测试基建:vite.config.ts 加 test 配置(jsdom + setup),package.json 加 test/test:watch 脚本,src/test/setup.ts 引 jest-dom;tsconfig 把测试文件 exclude, 使 CI 现有 tsc --noEmit 不检查测试文件(仍绿),测试由 Vitest 自跑(先不接 CI)。 覆盖(31 例 / 4 文件): - dsl:exportDsl 节点/边映射 + config 兜底 + branch 真假边 sourceHandle 条件; validate 空画布/孤立节点/必填项缺失。 - version:isNewer 版本比较矩阵;checkUpdate 有更新/同版/旧版/404限流/离线异常; openExternal Wails / 浏览器双路径。 - run:deriveNodes start→running、end→done+耗时、error、error 不被 start 覆盖、 info 累计 notes、首现顺序、label 更新。 - UpdateBanner(RTL):无更新不渲染、有更新显版本+点下载调 openExternal、点忽略消失。 小改:version.ts 导出 isNewer(原私有)以便直接测版本判定矩阵。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -37,8 +37,8 @@ export function openExternal(url: string): void {
|
||||
}
|
||||
}
|
||||
|
||||
// isNewer 语义化版本比较:a 是否比 b 新(按 major.minor.patch)。
|
||||
function isNewer(a: string, b: string): boolean {
|
||||
// isNewer 语义化版本比较:a 是否比 b 新(按 major.minor.patch)。导出以便单测覆盖版本判定矩阵。
|
||||
export function isNewer(a: string, b: string): boolean {
|
||||
const pa = a.split(".").map((n) => parseInt(n, 10) || 0);
|
||||
const pb = b.split(".").map((n) => parseInt(n, 10) || 0);
|
||||
for (let i = 0; i < 3; i++) {
|
||||
|
||||
Reference in New Issue
Block a user