Files
Genarrative/apps/ai-game-creator-shell/tests/appUpdate.test.ts
T
kdletters a7e810b999
Project CI / Backend tests (push) Successful in 7m40s
Project CI / Native shell tests (push) Failing after 18m53s
Project CI / Repository checks (push) Failing after 1m11s
Project CI / Frontend tests (push) Failing after 2m27s
添加 AGC 客户端更新检查与下载能力 (#230)
实现 AGC 启动版本检测与 OSS 安装包下载。

- 每次客户端打开时从 OSS latest.json 检查新版本
- 新版本提示支持 releaseNotes,并通过 Tauri 命令下载到系统下载目录
- 下载地址限制受信任 OSS、HTTPS、大小与可选 SHA-256 校验
- 补充 Tauri capability/CSP、单测和发布文档

Closes #224

Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/230
2026-09-01 19:23:55 +08:00

36 lines
992 B
TypeScript

import { afterEach, describe, expect, it } from 'vitest';
import {
isNewerVersion,
parseAppUpdateManifest,
resetAppUpdateCheckForTests,
} from '../src/services/appUpdate';
afterEach(() => resetAppUpdateCheckForTests());
describe('AGC update manifest', () => {
it('compares semantic versions and accepts v prefixes', () => {
expect(isNewerVersion('v0.1.13', '0.1.12')).toBe(true);
expect(isNewerVersion('0.1.12', '0.1.12')).toBe(false);
expect(isNewerVersion('0.1.11', '0.1.12')).toBe(false);
});
it('validates an OSS manifest and rejects non-HTTPS downloads', () => {
expect(
parseAppUpdateManifest({
version: '0.1.13',
downloadUrl: 'https://oss.example/agc.exe',
}),
).toMatchObject({
version: '0.1.13',
downloadUrl: 'https://oss.example/agc.exe',
});
expect(
parseAppUpdateManifest({
version: '0.1.13',
downloadUrl: 'http://oss.example/agc.exe',
}),
).toBeNull();
});
});