docs: add package godoc and clarify public API

Prepare the extracted library for external consumption with grouped
godoc, extension point docs, and setup requirements. Wire
ErrBadCursorString into decode paths and drop redundant Paginate*Conds
aliases.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-29 17:14:05 -07:00
parent aecd90eb84
commit 683b0ddbf4
8 changed files with 141 additions and 59 deletions
+5 -4
View File
@@ -38,16 +38,16 @@ func TestUsesTupleOrderingEdgeCases(t *testing.T) {
assert.False(t, sameCol.UsesTupleOrdering())
}
func TestPaginateWrapperFuncs(t *testing.T) {
func TestPaginateCondsValueTypes(t *testing.T) {
RegisterColumn(User.ID, Meeting.StartTime)
intCursor := NewCursor(NewInt64Value(1, User.ID), User.ID, OrderDescending)
sql := User.SELECT(User.AllColumns).WHERE(PaginateIntConds(intCursor)).DebugSql()
sql := User.SELECT(User.AllColumns).WHERE(PaginateConds(intCursor)).DebugSql()
assert.Contains(t, sql, "user.id < 1")
strCursor := NewCursor(NewStringValue("x", MeetingRoom.ID), MeetingRoom.ID, OrderDescending)
RegisterColumn(MeetingRoom.ID)
sql = MeetingRoom.SELECT(MeetingRoom.AllColumns).WHERE(PaginateUUIDConds(strCursor)).DebugSql()
sql = MeetingRoom.SELECT(MeetingRoom.AllColumns).WHERE(PaginateConds(strCursor)).DebugSql()
assert.Contains(t, sql, "meeting_room.id < 'x'")
tsCursor := NewCursor(
@@ -55,7 +55,7 @@ func TestPaginateWrapperFuncs(t *testing.T) {
Meeting.StartTime,
OrderDescending,
)
sql = Meeting.SELECT(Meeting.AllColumns).WHERE(PaginateTimestampConds(tsCursor)).DebugSql()
sql = Meeting.SELECT(Meeting.AllColumns).WHERE(PaginateConds(tsCursor)).DebugSql()
assert.Contains(t, sql, "meeting.start_time <")
}
@@ -63,6 +63,7 @@ func TestNewCursorFromJSONError(t *testing.T) {
RegisterColumn(User.ID)
_, err := NewCursorFromJSON(NewInt64Value(0, User.ID), []byte(`{invalid`))
require.Error(t, err)
require.ErrorIs(t, err, ErrBadCursorString)
}
func TestColWrongTypePanics(t *testing.T) {