chore: establish local platform baseline
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
package pagination
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestCursorRoundTripAndTamperProtection(t *testing.T) {
|
||||
codec, err := NewCodec([]byte("01234567890123456789012345678901"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
encoded, err := codec.Encode("2026-08-23T12:00:00Z", "item-1")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
decoded, err := codec.Decode(encoded)
|
||||
if err != nil || decoded.ID != "item-1" {
|
||||
t.Fatalf("decoded = %#v, err = %v", decoded, err)
|
||||
}
|
||||
tampered := encoded[:len(encoded)-1] + "A"
|
||||
if _, err := codec.Decode(tampered); !errors.Is(err, ErrInvalidCursor) {
|
||||
t.Fatalf("tampered cursor error = %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseLimit(t *testing.T) {
|
||||
if value, err := ParseLimit(""); err != nil || value != DefaultLimit {
|
||||
t.Fatalf("default limit = %d, err = %v", value, err)
|
||||
}
|
||||
for _, invalid := range []string{"0", "101", "abc", "-1"} {
|
||||
if _, err := ParseLimit(invalid); err == nil {
|
||||
t.Fatalf("expected %q to be rejected", invalid)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user