fix: restore go compatibility for runtime models
This commit is contained in:
@@ -2,6 +2,7 @@ package runtime
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
@@ -19,6 +20,12 @@ func TestStoreMissingSQLiteReturnsEmptySnapshot(t *testing.T) {
|
||||
if snapshot.Source.Confidence != "low" || snapshot.Source.Kind != "sqlite_missing" {
|
||||
t.Fatalf("unexpected source evidence: %#v", snapshot.Source)
|
||||
}
|
||||
if source := snapshot.Sources["state"]; source.Kind != "sqlite_missing" || source.Confidence != "low" {
|
||||
t.Fatalf("unexpected state source evidence: %#v", source)
|
||||
}
|
||||
if source := snapshot.Sources["goals"]; source.Kind != "sqlite_missing" || source.Confidence != "low" {
|
||||
t.Fatalf("unexpected goals source evidence: %#v", source)
|
||||
}
|
||||
}
|
||||
|
||||
func TestStoreReadsThreadsEdgesAndGoalsFromReadonlySQLite(t *testing.T) {
|
||||
@@ -44,6 +51,68 @@ func TestStoreReadsThreadsEdgesAndGoalsFromReadonlySQLite(t *testing.T) {
|
||||
if snapshot.Source.Confidence != "high" || snapshot.Source.Kind != "sqlite_readonly" {
|
||||
t.Fatalf("unexpected source evidence: %#v", snapshot.Source)
|
||||
}
|
||||
if source := snapshot.Sources["state"]; source.Kind != "sqlite_readonly" || source.Confidence != "high" {
|
||||
t.Fatalf("unexpected state source evidence: %#v", source)
|
||||
}
|
||||
if source := snapshot.Sources["goals"]; source.Kind != "sqlite_readonly" || source.Confidence != "high" {
|
||||
t.Fatalf("unexpected goals source evidence: %#v", source)
|
||||
}
|
||||
}
|
||||
|
||||
func TestStoreMarksStateMissingWhenOnlyGoalsSQLiteExists(t *testing.T) {
|
||||
root := t.TempDir()
|
||||
createRuntimeSQLite(t, root)
|
||||
if err := os.Remove(filepath.Join(root, "state_5.sqlite")); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
snapshot, err := Store{CodexHome: root}.Snapshot()
|
||||
if err != nil {
|
||||
t.Fatalf("Snapshot returned error: %v", err)
|
||||
}
|
||||
if len(snapshot.Threads) != 0 || len(snapshot.SpawnEdges) != 0 {
|
||||
t.Fatalf("expected no state-backed data, got threads=%#v edges=%#v", snapshot.Threads, snapshot.SpawnEdges)
|
||||
}
|
||||
if len(snapshot.Goals) != 1 {
|
||||
t.Fatalf("goals = %#v, want one goal from goals DB", snapshot.Goals)
|
||||
}
|
||||
if source := snapshot.Sources["state"]; source.Kind != "sqlite_missing" || source.Confidence != "low" {
|
||||
t.Fatalf("unexpected state source evidence: %#v", source)
|
||||
}
|
||||
if source := snapshot.Sources["goals"]; source.Kind != "sqlite_readonly" || source.Confidence != "high" {
|
||||
t.Fatalf("unexpected goals source evidence: %#v", source)
|
||||
}
|
||||
if snapshot.Source.Confidence != "partial" || snapshot.Source.Kind != "sqlite_partial" {
|
||||
t.Fatalf("unexpected aggregate source evidence: %#v", snapshot.Source)
|
||||
}
|
||||
}
|
||||
|
||||
func TestStoreMarksGoalsMissingWhenOnlyStateSQLiteExists(t *testing.T) {
|
||||
root := t.TempDir()
|
||||
createRuntimeSQLite(t, root)
|
||||
if err := os.Remove(filepath.Join(root, "goals_1.sqlite")); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
snapshot, err := Store{CodexHome: root}.Snapshot()
|
||||
if err != nil {
|
||||
t.Fatalf("Snapshot returned error: %v", err)
|
||||
}
|
||||
if len(snapshot.Threads) != 2 || len(snapshot.SpawnEdges) != 1 {
|
||||
t.Fatalf("expected state-backed data, got threads=%#v edges=%#v", snapshot.Threads, snapshot.SpawnEdges)
|
||||
}
|
||||
if len(snapshot.Goals) != 0 {
|
||||
t.Fatalf("goals = %#v, want no goals", snapshot.Goals)
|
||||
}
|
||||
if source := snapshot.Sources["state"]; source.Kind != "sqlite_readonly" || source.Confidence != "high" {
|
||||
t.Fatalf("unexpected state source evidence: %#v", source)
|
||||
}
|
||||
if source := snapshot.Sources["goals"]; source.Kind != "sqlite_missing" || source.Confidence != "low" {
|
||||
t.Fatalf("unexpected goals source evidence: %#v", source)
|
||||
}
|
||||
if snapshot.Source.Confidence != "partial" || snapshot.Source.Kind != "sqlite_partial" {
|
||||
t.Fatalf("unexpected aggregate source evidence: %#v", snapshot.Source)
|
||||
}
|
||||
}
|
||||
|
||||
func createRuntimeSQLite(t *testing.T, root string) {
|
||||
|
||||
Reference in New Issue
Block a user