graphql-python / graphql-python/graphql-relay-py

has_previous_page and has_next_page always False while navigating

Open
#12 4 comments 3 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
144
Forks
41
PR merge metrics
No merged PRs in 30d

Description

While using the pageInfo `hasPreviousPage` and `hasNextPage` cursor based navigation (before and after), it seems these results are always set to False.

The corresponding code (https://github.com/graphql-python/graphql-relay-py/blob/master/graphql_relay/connection/arrayconnection.py#L104-L105):
```python
return connection_type(
edges=edges,
page_info=pageinfo_type(
start_cursor=first_edge_cursor,
end_cursor=last_edge_cursor,
has_previous_page=isinstance(last, int) and start_offset > lower_bound,
has_next_page=isinstance(first, int) and end_offset < upper_bound
)
)
```

Querying with `first: 5, after: "xxx"` in this case always results in `hasPreviousPage: false`.
The same for `last: 5, before: "xxx"`, which results always in `hasNextPage: false`.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in graphql_relay/connection/arrayconnection.py around lines 104-105 and reproduce the reported queries using first with after and last with before. Trace how the cursor bounds are used to set pageInfo, then add regression coverage for both cases. Done means hasPreviousPage and hasNextPage report the available adjacent pages instead of always being false.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.