mirror of
https://github.com/Pandipipas/scoreko-electron-dev.git
synced 2026-06-05 21:22:07 +00:00
69 lines
2.1 KiB
TypeScript
69 lines
2.1 KiB
TypeScript
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");
|
|
});
|