Files
edgeever/scripts/check-native-release-assets.test.mjs
T

111 lines
3.1 KiB
JavaScript

import { describe, expect, test } from "bun:test";
import { nativeReleaseAssetsReady } from "./check-native-release-assets.mjs";
describe("native release asset readiness", () => {
test("accepts one reused Android APK but requires the current name after a rebuild", () => {
const reused = ["edgeever-android-v1.6.30-arm64-v8a.apk"];
expect(
nativeReleaseAssetsReady({
platform: "mobile",
rebuild: false,
currentTag: "v1.6.35",
assetNames: reused,
}),
).toBe(true);
expect(
nativeReleaseAssetsReady({
platform: "mobile",
rebuild: true,
currentTag: "v1.6.35",
assetNames: reused,
}),
).toBe(false);
});
test("rejects duplicate Android APKs", () => {
expect(
nativeReleaseAssetsReady({
platform: "mobile",
rebuild: false,
currentTag: "v1.6.35",
assetNames: [
"edgeever-android-v1.6.30-arm64-v8a.apk",
"edgeever-android-v1.6.35-arm64-v8a.apk",
],
}),
).toBe(false);
});
test("accepts a matching reused desktop asset set", () => {
expect(
nativeReleaseAssetsReady({
platform: "desktop",
rebuild: false,
currentTag: "v1.6.35",
desktopVersion: "1.6.35",
assetNames: [
"EdgeEver-1.6.33-mac-arm64.dmg",
"EdgeEver-1.6.33-mac-arm64.dmg.blockmap",
"EdgeEver-1.6.33-mac-arm64.zip",
"EdgeEver-1.6.33-mac-arm64.zip.blockmap",
"EdgeEver-1.6.33-mac-x64.dmg",
"EdgeEver-1.6.33-mac-x64.dmg.blockmap",
"EdgeEver-1.6.33-mac-x64.zip",
"EdgeEver-1.6.33-mac-x64.zip.blockmap",
"latest-mac.yml",
],
}),
).toBe(true);
});
test("requires current, complete desktop assets after a rebuild", () => {
const current = [
"EdgeEver-1.6.35-mac-arm64.dmg",
"EdgeEver-1.6.35-mac-arm64.dmg.blockmap",
"EdgeEver-1.6.35-mac-arm64.zip",
"EdgeEver-1.6.35-mac-arm64.zip.blockmap",
"EdgeEver-1.6.35-mac-x64.dmg",
"EdgeEver-1.6.35-mac-x64.dmg.blockmap",
"EdgeEver-1.6.35-mac-x64.zip",
"EdgeEver-1.6.35-mac-x64.zip.blockmap",
"latest-mac.yml",
];
expect(
nativeReleaseAssetsReady({
platform: "desktop",
rebuild: true,
currentTag: "v1.6.35",
desktopVersion: "1.6.35",
assetNames: current,
}),
).toBe(true);
expect(
nativeReleaseAssetsReady({
platform: "desktop",
rebuild: true,
currentTag: "v1.6.35",
desktopVersion: "1.6.35",
assetNames: current.slice(0, 8),
}),
).toBe(false);
});
test("rejects a desktop set with one architecture missing", () => {
expect(
nativeReleaseAssetsReady({
platform: "desktop",
rebuild: false,
currentTag: "v1.6.35",
desktopVersion: "1.6.35",
assetNames: [
"EdgeEver-1.6.33-mac-arm64.dmg",
"EdgeEver-1.6.33-mac-arm64.dmg.blockmap",
"EdgeEver-1.6.33-mac-arm64.zip",
"EdgeEver-1.6.33-mac-arm64.zip.blockmap",
"latest-mac.yml",
],
}),
).toBe(false);
});
});