From c7a264e0e8b307abd1f933016a6ebf4dd51f8f1a Mon Sep 17 00:00:00 2001 From: codex Date: Tue, 21 Apr 2026 05:08:20 -0300 Subject: [PATCH] test(metis): cover small persistence and device edges --- pkg/facts/load_test.go | 11 +++++++++++ pkg/service/coverage_more_test.go | 17 +++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/pkg/facts/load_test.go b/pkg/facts/load_test.go index fbb5cdc..4533dc5 100644 --- a/pkg/facts/load_test.go +++ b/pkg/facts/load_test.go @@ -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") + } +} diff --git a/pkg/service/coverage_more_test.go b/pkg/service/coverage_more_test.go index eec2231..4fcae4f 100644 --- a/pkg/service/coverage_more_test.go +++ b/pkg/service/coverage_more_test.go @@ -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") }