Files
Loki/internal/ajean/sys_update_asset_test.go
T
nathaninline 62ad4155a2 CLI elaguee et tests remis sur la base
- suppression des alias de commandes herites (skills, machine, tools, mem, upgrade...)
- aide reecrite et regroupee
- helper de test testHome + fermeture de la base (verrou bbolt sous Windows)
- tests des dossiers de modeles alignes sur models/
2026-08-07 17:03:27 +02:00

37 lines
1.2 KiB
Go

package ajean
import "testing"
// relWith fabrique une release ne contenant que les assets nommés.
func relWith(names ...string) *ghRelease {
rel := &ghRelease{TagName: "v9.9.9"}
for _, n := range names {
rel.Assets = append(rel.Assets, struct {
Name string `json:"name"`
BrowserDownloadURL string `json:"browser_download_url"`
Size int64 `json:"size"`
}{Name: n, BrowserDownloadURL: "https://example.invalid/" + n, Size: 42})
}
return rel
}
// L'asset de la plateforme est trouvé au milieu des autres, et le nom renvoyé
// est bien celui qui servira à vérifier le SHA-256.
func TestPickAssetTrouveSaPlateforme(t *testing.T) {
want := updateAssetName()
got, url, size := pickAsset(relWith("SHA256SUMS", "ajean-plan9-386", want))
if got != want {
t.Fatalf("got %q, attendu %q", got, want)
}
if url != "https://example.invalid/"+want || size != 42 {
t.Fatalf("incohérence URL/taille : %q %d", url, size)
}
}
// Aucun asset pour cette plateforme → pas d'URL, l'appelant doit pouvoir le voir.
func TestPickAssetSansCorrespondance(t *testing.T) {
if _, url, _ := pickAsset(relWith("ajean-plan9-386", "SHA256SUMS")); url != "" {
t.Fatalf("URL inattendue: %q", url)
}
}