111 lines
3.1 KiB
JavaScript
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);
|
|
});
|
|
});
|