test(metis): cover small persistence and device edges

This commit is contained in:
codex 2026-04-21 05:08:20 -03:00
parent 1a3cd78e8a
commit c7a264e0e8
2 changed files with 28 additions and 0 deletions

View File

@ -54,3 +54,14 @@ func TestLoadDirReadsNestedDirectoriesAndMissingDir(t *testing.T) {
t.Fatal("expected missing dir error")
}
}
func TestLoadDirReportsReadFailures(t *testing.T) {
dir := t.TempDir()
if err := os.Symlink(filepath.Join(dir, "missing-target"), filepath.Join(dir, "broken.json")); err != nil {
t.Fatal(err)
}
if _, err := LoadDir(dir); err == nil {
t.Fatal("expected broken json symlink to fail during read")
}
}

View File

@ -36,6 +36,15 @@ func TestServiceArtifactAndSnapshotPersistenceErrorBranches(t *testing.T) {
if err := app.persistTargets(); err == nil {
t.Fatal("expected persistTargets to fail when parent is a file")
}
invalidArtifactState := filepath.Join(t.TempDir(), "artifacts.json")
if err := os.WriteFile(invalidArtifactState, []byte("{bad-json"), 0o644); err != nil {
t.Fatal(err)
}
app.settings.ArtifactStatePath = invalidArtifactState
if err := app.loadArtifacts(); err == nil {
t.Fatal("expected loadArtifacts to reject invalid json")
}
}
func TestServiceReplacementAndDeviceBranches(t *testing.T) {
@ -72,6 +81,14 @@ func TestServiceReplacementAndDeviceBranches(t *testing.T) {
if got, err := app.cachedDevices("host"); err == nil || len(got) != 1 {
t.Fatalf("cachedDevices error snapshot = %#v err=%v", got, err)
}
app.settings.DefaultFlashHost = "default-host"
app.recordDevices("", []Device{{Path: "/dev/mmcblk0"}}, nil)
if got, err := app.cachedDevices(""); err != nil || len(got) != 1 || got[0].Path != "/dev/mmcblk0" {
t.Fatalf("default-host cachedDevices = %#v err=%v", got, err)
}
if got := deviceScore(Device{Name: "sda", Model: "SDXC Card"}); got != 50 {
t.Fatalf("expected sd card score, got %d", got)
}
if _, err := app.Replace("incomplete", "titan-22", "/dev/sdz"); err == nil {
t.Fatal("expected Replace to reject incomplete node")
}