summaryrefslogtreecommitdiff
path: root/internal/controlplane/usage_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/controlplane/usage_test.go')
-rw-r--r--internal/controlplane/usage_test.go26
1 files changed, 26 insertions, 0 deletions
diff --git a/internal/controlplane/usage_test.go b/internal/controlplane/usage_test.go
new file mode 100644
index 0000000..d47ce16
--- /dev/null
+++ b/internal/controlplane/usage_test.go
@@ -0,0 +1,26 @@
+package controlplane
+
+import (
+ "errors"
+ "testing"
+ "time"
+)
+
+func TestUsageCursorRoundTrip(t *testing.T) {
+ record := UsageRecord{RequestID: "req_cursor_test", StartedAt: time.Date(2026, 8, 6, 2, 3, 4, 567, time.UTC)}
+ cursor, err := decodeUsageCursor(encodeUsageCursor(record))
+ if err != nil {
+ t.Fatal(err)
+ }
+ if cursor.RequestID != record.RequestID || !cursor.StartedAt.Equal(record.StartedAt) {
+ t.Fatalf("cursor = %+v, want request %s at %v", cursor, record.RequestID, record.StartedAt)
+ }
+}
+
+func TestUsageCursorRejectsInvalidInput(t *testing.T) {
+ for _, raw := range []string{"not-base64!", "e30", string(make([]byte, 2049))} {
+ if _, err := decodeUsageCursor(raw); !errors.Is(err, ErrInvalidUsageCursor) {
+ t.Fatalf("decodeUsageCursor(%q) error = %v", raw, err)
+ }
+ }
+}