Derive stable prompt sessions for CLI runs
This commit is contained in:
61
internal/cli/session_test.go
Normal file
61
internal/cli/session_test.go
Normal file
@@ -0,0 +1,61 @@
|
||||
package cli
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestResolvePromptSessionIDUsesVersionedInputIdentity(t *testing.T) {
|
||||
got, err := resolvePromptSessionID("", " seriatim/input/transcript ", []byte("{\"entries\":[\"one\"]}\n"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
const want = "notarius:v1:e15fefdca48653e73248b4157900547be1fd34250c0138f8d3d1f2e89b43bb25"
|
||||
if got != want {
|
||||
t.Fatalf("resolved session = %q, want %q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolvePromptSessionIDStabilityAndOverride(t *testing.T) {
|
||||
rawInput := []byte("same input")
|
||||
baseline, err := resolvePromptSessionID("", "input/transcript", rawInput)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
repeated, err := resolvePromptSessionID("", "input/transcript", rawInput)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if baseline != repeated {
|
||||
t.Fatalf("resolved sessions = %q and %q, want stable value", baseline, repeated)
|
||||
}
|
||||
|
||||
differentModule, err := resolvePromptSessionID("", "input/other", rawInput)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if baseline == differentModule {
|
||||
t.Fatalf("resolved sessions = %q for distinct input modules", baseline)
|
||||
}
|
||||
|
||||
differentInput, err := resolvePromptSessionID("", "input/transcript", []byte("same inpuu"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if baseline == differentInput {
|
||||
t.Fatalf("resolved sessions = %q for distinct input bytes", baseline)
|
||||
}
|
||||
|
||||
override, err := resolvePromptSessionID(" explicit-session ", "input/other", []byte("different input"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if override != "explicit-session" {
|
||||
t.Fatalf("resolved override = %q, want %q", override, "explicit-session")
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolvePromptSessionIDRejectsEmptyInputModule(t *testing.T) {
|
||||
for _, explicitSessionID := range []string{"", "explicit-session"} {
|
||||
if _, err := resolvePromptSessionID(explicitSessionID, " \t", []byte("input")); err == nil {
|
||||
t.Fatalf("resolvePromptSessionID(%q) error = nil, want empty module failure", explicitSessionID)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user