a7e810b999
实现 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
36 lines
992 B
TypeScript
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();
|
|
});
|
|
});
|