diff --git a/graphene/relay/tests/test_connection_query.py b/graphene/relay/tests/test_connection_query.py index cc1f12ce..068081d6 100644 --- a/graphene/relay/tests/test_connection_query.py +++ b/graphene/relay/tests/test_connection_query.py @@ -1,6 +1,7 @@ from collections import OrderedDict from graphql_relay.utils import base64 +from promise import Promise from ...types import ObjectType, Schema, String from ..connection import ConnectionField, PageInfo @@ -20,12 +21,16 @@ class Letter(ObjectType): class Query(ObjectType): letters = ConnectionField(Letter) connection_letters = ConnectionField(Letter) + promise_letters = ConnectionField(Letter) node = Node.Field() def resolve_letters(self, args, context, info): return list(letters.values()) + def resolve_promise_letters(self, args, context, info): + return Promise.resolve(list(letters.values())) + def resolve_connection_letters(self, args, context, info): return Letter.Connection( page_info=PageInfo( @@ -228,3 +233,38 @@ def test_connection_type_nodes(): } } } + + +def test_connection_promise(): + result = schema.execute(''' + { + promiseLetters(first:1) { + edges { + node { + id + letter + } + } + pageInfo { + hasPreviousPage + hasNextPage + } + } + } + ''') + + assert not result.errors + assert result.data == { + 'promiseLetters': { + 'edges': [{ + 'node': { + 'id': 'TGV0dGVyOjA=', + 'letter': 'A', + }, + }], + 'pageInfo': { + 'hasPreviousPage': False, + 'hasNextPage': True, + } + } + }