mirror of
https://tangled.org/evan.jarrett.net/at-container-registry
synced 2026-08-29 12:17:00 +00:00
51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
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)
|
|
}
|
|
}
|