2026-07-17 18:33:06 +02:00
|
|
|
package store
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
"testing"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestSyncState_DefaultsAndUpdate(t *testing.T) {
|
|
|
|
|
db := openTestDB(t)
|
|
|
|
|
ctx := context.Background()
|
2026-07-25 13:17:17 +02:00
|
|
|
userID, err := db.ProvisionUser(ctx, "test-sub", "Test User")
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("ProvisionUser: %v", err)
|
|
|
|
|
}
|
2026-07-17 18:33:06 +02:00
|
|
|
|
2026-07-25 13:17:17 +02:00
|
|
|
state, err := db.GetSyncState(ctx, userID)
|
2026-07-17 18:33:06 +02:00
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("GetSyncState: %v", err)
|
|
|
|
|
}
|
|
|
|
|
if state.EarliestSyncedDate != nil || state.BackfillComplete {
|
|
|
|
|
t.Fatalf("expected fresh DB to have no watermark, got %+v", state)
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-25 13:17:17 +02:00
|
|
|
if err := db.UpdateSyncState(ctx, userID, "2023-01-01", true); err != nil {
|
2026-07-17 18:33:06 +02:00
|
|
|
t.Fatalf("UpdateSyncState: %v", err)
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-25 13:17:17 +02:00
|
|
|
state, err = db.GetSyncState(ctx, userID)
|
2026-07-17 18:33:06 +02:00
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("GetSyncState after update: %v", err)
|
|
|
|
|
}
|
|
|
|
|
if state.EarliestSyncedDate == nil || *state.EarliestSyncedDate != "2023-01-01" || !state.BackfillComplete {
|
|
|
|
|
t.Fatalf("state after update = %+v, want earliest=2023-01-01 complete=true", state)
|
|
|
|
|
}
|
|
|
|
|
}
|