Release 3.8.0.2: app.zip updates, lock hygiene, secret-safe getState.

This commit is contained in:
M4
2026-07-29 22:00:39 +03:00
parent 54b5b87990
commit 6a7480dceb
31 changed files with 2058 additions and 1537 deletions
+31
View File
@@ -30,6 +30,37 @@ func TestCompare(t *testing.T) {
}
}
func TestResolveAssetPrefersZip(t *testing.T) {
m := Manifest{
Platforms: map[string]PlatformAsset{
"darwin-arm64": {
URL: "https://git.evilfox.cc/bin",
SHA256: "aaa",
ZipURL: "https://git.evilfox.cc/app.zip",
ZipSHA256: "bbb",
},
},
}
u, s, k, ok := m.ResolveAsset("darwin-arm64", true)
if !ok || k != AssetKindAppZip || u == "" || s != "bbb" {
t.Fatalf("zip: ok=%v kind=%s url=%s sha=%s", ok, k, u, s)
}
u, s, k, ok = m.ResolveAsset("darwin-arm64", false)
if !ok || k != AssetKindBinary || s != "aaa" {
t.Fatalf("bin: ok=%v kind=%s sha=%s", ok, k, s)
}
}
func TestAppBundleRoot(t *testing.T) {
root, ok := AppBundleRoot("/Applications/Navis.app/Contents/MacOS/Navis")
if !ok || root != "/Applications/Navis.app" {
t.Fatalf("got %q ok=%v", root, ok)
}
if _, ok := AppBundleRoot("/usr/local/bin/Navis"); ok {
t.Fatal("expected bare binary")
}
}
func TestManifestAssetFor(t *testing.T) {
m := Manifest{
URL: "https://git.evilfox.cc/legacy.exe",