@@ -157,3 +157,40 @@ func TestFunctionalEventsNotFound(t *testing.T) {
157157 t .Logf ("Got expected API error: status=%d message=%q trackingId=%s" ,
158158 apiErr .StatusCode , apiErr .Message , apiErr .TrackingID )
159159}
160+
161+ // TestFunctionalEventsCursorNavigation tests PageFromCursor with events
162+ // Run with:
163+ //
164+ // WEBEX_ACCESS_TOKEN=<your-token> go test -tags functional -run TestFunctionalEventsCursorNavigation -v ./events/
165+ func TestFunctionalEventsCursorNavigation (t * testing.T ) {
166+ client := functionalClient (t )
167+ eventsClient := New (client , nil )
168+
169+ page , err := eventsClient .List (& ListOptions {
170+ From : time .Now ().AddDate (0 , 0 , - 7 ).Format (time .RFC3339 ),
171+ To : time .Now ().Format (time .RFC3339 ),
172+ Max : 1 ,
173+ })
174+ if err != nil {
175+ skipOn403 (t , err )
176+ t .Fatalf ("List failed: %v" , err )
177+ }
178+
179+ if ! page .HasNext {
180+ t .Log ("Only one page of results — skipping cursor navigation test" )
181+ return
182+ }
183+
184+ cursor := page .NextPage
185+ t .Logf ("Saved cursor: %s" , cursor )
186+
187+ directPage , err := client .PageFromCursor (cursor )
188+ if err != nil {
189+ t .Fatalf ("PageFromCursor failed: %v" , err )
190+ }
191+
192+ t .Logf ("Direct cursor navigation: got %d items, hasNext=%v" , len (directPage .Items ), directPage .HasNext )
193+ if len (directPage .Items ) == 0 {
194+ t .Error ("Expected items from cursor navigation" )
195+ }
196+ }
0 commit comments