package db import ( "fmt" "strings" "testing" ) func TestJetstreamCursor_RoundTrip(t *testing.T) { safeName := strings.ReplaceAll(t.Name(), "/", "_") d, err := InitDB(fmt.Sprintf("file:%s?mode=memory&cache=shared", safeName), LibsqlConfig{}) if err != nil { t.Fatalf("init db: %v", err) } d.SetMaxOpenConns(1) defer d.Close() // Fresh DB: no persisted cursor. got, err := GetJetstreamCursor(d) if err != nil { t.Fatalf("get empty: %v", err) } if got != 0 { t.Errorf("initial cursor = %d, want 0", got) } // Save → read. if err := SaveJetstreamCursor(d, 1234567890); err != nil { t.Fatalf("save: %v", err) } got, err = GetJetstreamCursor(d) if err != nil { t.Fatalf("get after save: %v", err) } if got != 1234567890 { t.Errorf("cursor = %d, want 1234567890", got) } // Overwrite with newer value. if err := SaveJetstreamCursor(d, 9999999999); err != nil { t.Fatalf("save 2: %v", err) } got, err = GetJetstreamCursor(d) if err != nil { t.Fatalf("get 2: %v", err) } if got != 9999999999 { t.Errorf("cursor after overwrite = %d, want 9999999999", got) } }