Files
kdletters 53070e0390
Project CI / Repository checks (push) Successful in 2m31s
Project CI / Frontend tests (push) Successful in 3m10s
Project CI / Backend tests (push) Successful in 7m6s
Project CI / Native shell tests (push) Successful in 19m53s
支持 AGC 多行发布说明
Jenkins 参数改为多行文本输入
客户端更新提示保留换行并支持滚动
增加清单与客户端多行说明测试
同步 AGC 更新发布文档
2026-09-03 10:36:43 +08:00

48 lines
1.3 KiB
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();
});
it('preserves multiline release notes', () => {
expect(
parseAppUpdateManifest({
version: '0.1.13',
downloadUrl: 'https://oss.example/agc.exe',
releaseNotes: '第一行\n第二行\r\n第三行',
}),
).toMatchObject({
releaseNotes: '第一行\n第二行\r\n第三行',
});
});
});