graphql-python / graphql-python/graphql-relay-py
has_previous_page and has_next_page always False while navigating
- 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