mirror of
https://github.com/Pandipipas/scoreko-electron-dev.git
synced 2026-06-06 05:32:06 +00:00
feat: implement Gitea update checks and installer management
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
|
||||
import {
|
||||
buildReleaseUpdate,
|
||||
isVersionNewer,
|
||||
sanitizeFileName,
|
||||
selectInstallerAsset,
|
||||
} from "../main/updates/update-utils";
|
||||
|
||||
test("isVersionNewer compares semantic versions with optional v prefix", () => {
|
||||
assert.equal(isVersionNewer("v0.2.0", "0.1.9"), true);
|
||||
assert.equal(isVersionNewer("0.1.0", "0.1.0"), false);
|
||||
assert.equal(isVersionNewer("0.1.0", "0.2.0"), false);
|
||||
});
|
||||
|
||||
test("selectInstallerAsset picks the first matching exe asset", () => {
|
||||
const asset = selectInstallerAsset(
|
||||
{
|
||||
assets: [
|
||||
{ name: "latest.yml", browser_download_url: "http://gitea/latest.yml" },
|
||||
{ name: "Scoreko-setup-0.2.0.exe", browser_download_url: "http://gitea/Scoreko-setup-0.2.0.exe", size: 100 },
|
||||
],
|
||||
},
|
||||
"Scoreko-setup-.*\\.exe$",
|
||||
);
|
||||
|
||||
assert.deepEqual(asset, {
|
||||
name: "Scoreko-setup-0.2.0.exe",
|
||||
downloadUrl: "http://gitea/Scoreko-setup-0.2.0.exe",
|
||||
size: 100,
|
||||
});
|
||||
});
|
||||
|
||||
test("buildReleaseUpdate returns null when the release is not newer", () => {
|
||||
const update = buildReleaseUpdate(
|
||||
{
|
||||
tag_name: "v0.1.0",
|
||||
assets: [{ name: "Scoreko-setup-0.1.0.exe", browser_download_url: "http://gitea/Scoreko-setup-0.1.0.exe" }],
|
||||
},
|
||||
"0.1.0",
|
||||
"Scoreko-setup-.*\\.exe$",
|
||||
);
|
||||
|
||||
assert.equal(update, null);
|
||||
});
|
||||
|
||||
test("buildReleaseUpdate builds update info for newer releases", () => {
|
||||
const update = buildReleaseUpdate(
|
||||
{
|
||||
tag_name: "v0.2.0",
|
||||
name: "Scoreko 0.2.0",
|
||||
html_url: "http://gitea/releases/v0.2.0",
|
||||
assets: [{ name: "Scoreko-setup-0.2.0.exe", browser_download_url: "http://gitea/Scoreko-setup-0.2.0.exe" }],
|
||||
},
|
||||
"0.1.0",
|
||||
"Scoreko-setup-.*\\.exe$",
|
||||
);
|
||||
|
||||
assert.equal(update?.version, "0.2.0");
|
||||
assert.equal(update?.title, "Scoreko 0.2.0");
|
||||
assert.equal(update?.pageUrl, "http://gitea/releases/v0.2.0");
|
||||
assert.equal(update?.installer.name, "Scoreko-setup-0.2.0.exe");
|
||||
});
|
||||
|
||||
test("sanitizeFileName removes Windows-unsafe characters", () => {
|
||||
assert.equal(sanitizeFileName('Scoreko:setup*"0.2.0.exe'), "Scoreko_setup__0.2.0.exe");
|
||||
});
|
||||
Reference in New Issue
Block a user