package main import ( "math" "os" "path/filepath" "strings" "testing" ) func TestIntentProvenance(t *testing.T) { for _, status := range []goalStatus{active, paused, "complete", "budgetLimited", "usageLimited", blocked} { got, ok, err := parseIntent(intentLine(status)) if err != nil || !ok || got != status { t.Fatalf("status=%s got=%s match=%v error=%v", status, got, ok, err) } } line := string(intentLine(active)) for _, text := range []string{ strings.Replace(line, "user.goal", "user.input", 1), strings.Replace(line, "\"role\":\"user\"", "\"role\":\"assistant\"", 1), strings.Replace(line, "input_text", "output_text", 1), } { if _, ok, err := parseIntent([]byte(text)); err != nil || ok { t.Fatalf("accepted untrusted instruction: match=%v error=%v", ok, err) } } } func TestIntentTail(t *testing.T) { path := filepath.Join(t.TempDir(), "rollout.jsonl") if err := os.WriteFile(path, intentLine(active), 0600); err != nil { t.Fatal(err) } log, err := openIntent(path) if err != nil { t.Fatal(err) } if status, err := log.read(math.MaxInt64); err != nil || status != "" { t.Fatal("replayed historical authorization") } data := intentLine(paused) appendIntent(t, path, data[:len(data)/2]) if status, err := log.read(math.MaxInt64); err != nil || status != "" { t.Fatal("accepted partial record") } appendIntent(t, path, data[len(data)/2:]) if status, err := log.read(math.MaxInt64); err != nil || status != paused { t.Fatalf("partial completion: %s %v", status, err) } appendIntent(t, path, intentLine(active)) if err := log.seal(); err != nil { t.Fatal(err) } if status, err := log.read(math.MaxInt64); err != nil || status != "" { t.Fatal("replayed pre-cancellation authorization") } appendIntent(t, path, intentLine(active)) if status, err := log.read(math.MaxInt64); err != nil || status != active { t.Fatalf("new authorization: %s %v", status, err) } } func TestIntentFence(t *testing.T) { path := filepath.Join(t.TempDir(), "rollout.jsonl") if err := os.WriteFile(path, nil, 0600); err != nil { t.Fatal(err) } log, err := openIntent(path) if err != nil { t.Fatal(err) } data := intentLine(active) appendIntent(t, path, data[:len(data)/2]) if err := log.seal(); err != nil { t.Fatal(err) } appendIntent(t, path, data[len(data)/2:]) if status, err := log.read(math.MaxInt64); err != nil || status != "" { t.Fatalf("replayed instruction spanning cancellation: %s %v", status, err) } appendIntent(t, path, intentLine(active)) if status, err := log.read(math.MaxInt64); err != nil || status != active { t.Fatalf("new instruction after cancellation: %s %v", status, err) } } func TestIntentCut(t *testing.T) { path := filepath.Join(t.TempDir(), "rollout.jsonl") if err := os.WriteFile(path, nil, 0600); err != nil { t.Fatal(err) } log, err := openIntent(path) if err != nil { t.Fatal(err) } appendIntent(t, path, intentLine(paused)) end, err := log.end() if err != nil { t.Fatal(err) } appendIntent(t, path, intentLine(active)) if status, err := log.read(end); err != nil || status != paused { t.Fatalf("read beyond captured input: %s %v", status, err) } if status, err := log.read(math.MaxInt64); err != nil || status != active { t.Fatalf("lost later input: %s %v", status, err) } }