47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package reference
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestReadUsesBundledSnapshot(t *testing.T) {
|
|
service := NewService(t.TempDir())
|
|
payload, err := service.Read("gpu")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if payload["kind"] != "gpu" {
|
|
t.Fatalf("kind = %#v", payload["kind"])
|
|
}
|
|
items, ok := payload["items"].([]any)
|
|
if !ok || len(items) < 10 {
|
|
t.Fatalf("unexpected items: %#v", payload["items"])
|
|
}
|
|
}
|
|
|
|
func TestReadPrefersValidOverride(t *testing.T) {
|
|
root := t.TempDir()
|
|
dir := filepath.Join(root, "reference-data")
|
|
if err := os.MkdirAll(dir, 0o750); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := os.WriteFile(filepath.Join(dir, "cpu-ranking.json"), []byte(`{"schemaVersion":1,"kind":"cpu","version":"override","items":[]}`), 0o640); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
payload, err := NewService(root).Read("cpu")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if payload["version"] != "override" {
|
|
t.Fatalf("version = %#v", payload["version"])
|
|
}
|
|
}
|
|
|
|
func TestReadRejectsUnknownKind(t *testing.T) {
|
|
if _, err := NewService("").Read("unknown"); err != ErrNotFound {
|
|
t.Fatalf("err = %v", err)
|
|
}
|
|
}
|