@@ -23,13 +23,13 @@ public function testFirst(): void
2323 'query ' => new ObjectType ([
2424 'name ' => 'query ' ,
2525 'fields ' => [
26- 'performance ' => $ driver ->completeConnection (Performance::class),
26+ 'performances ' => $ driver ->completeConnection (Performance::class),
2727 ],
2828 ]),
2929 ]);
3030
3131 $ query = '{
32- performance (pagination: { first: 2 }) {
32+ performances (pagination: { first: 2 }) {
3333 pageInfo {
3434 hasNextPage
3535 hasPreviousPage
@@ -48,10 +48,54 @@ public function testFirst(): void
4848
4949 $ data = $ result ->toArray ()['data ' ];
5050
51- $ this ->assertEquals ($ data ['performance ' ]['pageInfo ' ]['startCursor ' ], $ data ['performance ' ]['edges ' ][0 ]['cursor ' ]);
52- $ this ->assertEquals ($ data ['performance ' ]['pageInfo ' ]['endCursor ' ], $ data ['performance ' ]['edges ' ][1 ]['cursor ' ]);
51+ $ this ->assertEquals ($ data ['performances ' ]['pageInfo ' ]['startCursor ' ], $ data ['performances ' ]['edges ' ][0 ]['cursor ' ]);
52+ $ this ->assertEquals ($ data ['performances ' ]['pageInfo ' ]['endCursor ' ], $ data ['performances ' ]['edges ' ][1 ]['cursor ' ]);
5353
54- $ this ->assertEquals (2 , count ($ data ['performance ' ]['edges ' ]));
54+ $ this ->assertTrue ($ data ['performances ' ]['pageInfo ' ]['hasNextPage ' ]);
55+ $ this ->assertFalse ($ data ['performances ' ]['pageInfo ' ]['hasPreviousPage ' ]);
56+
57+ $ this ->assertEquals (2 , count ($ data ['performances ' ]['edges ' ]));
58+ }
59+
60+ public function testFirstWithOffset (): void
61+ {
62+ $ driver = new Driver ($ this ->getEntityManager ());
63+ $ schema = new Schema ([
64+ 'query ' => new ObjectType ([
65+ 'name ' => 'query ' ,
66+ 'fields ' => [
67+ 'performances ' => $ driver ->completeConnection (Performance::class),
68+ ],
69+ ]),
70+ ]);
71+
72+ $ query = '{
73+ performances (pagination: { first: 2 after: "MQ==" }) {
74+ pageInfo {
75+ hasNextPage
76+ hasPreviousPage
77+ startCursor
78+ endCursor
79+ }
80+ edges {
81+ cursor
82+ node {
83+ id
84+ }
85+ }
86+ }
87+ } ' ;
88+ $ result = GraphQL::executeQuery ($ schema , $ query );
89+
90+ $ data = $ result ->toArray ()['data ' ];
91+
92+ $ this ->assertEquals ($ data ['performances ' ]['pageInfo ' ]['startCursor ' ], $ data ['performances ' ]['edges ' ][0 ]['cursor ' ]);
93+ $ this ->assertEquals ($ data ['performances ' ]['pageInfo ' ]['endCursor ' ], $ data ['performances ' ]['edges ' ][1 ]['cursor ' ]);
94+
95+ $ this ->assertTrue ($ data ['performances ' ]['pageInfo ' ]['hasNextPage ' ]);
96+ $ this ->assertTrue ($ data ['performances ' ]['pageInfo ' ]['hasPreviousPage ' ]);
97+
98+ $ this ->assertEquals (2 , count ($ data ['performances ' ]['edges ' ]));
5599 }
56100
57101 public function testCollectionFirst (): void
@@ -72,7 +116,7 @@ public function testCollectionFirst(): void
72116 cursor
73117 node {
74118 id
75- performances (pagination: { first: 2 }) {
119+ performances (pagination: { first: 2 after: "MQ==" }) {
76120 pageInfo {
77121 hasNextPage
78122 hasPreviousPage
@@ -103,6 +147,9 @@ public function testCollectionFirst(): void
103147 $ data ['artists ' ]['edges ' ][0 ]['node ' ]['performances ' ]['edges ' ][1 ]['cursor ' ],
104148 );
105149
150+ $ this ->assertTrue ($ data ['artists ' ]['edges ' ][0 ]['node ' ]['performances ' ]['pageInfo ' ]['hasNextPage ' ]);
151+ $ this ->assertTrue ($ data ['artists ' ]['edges ' ][0 ]['node ' ]['performances ' ]['pageInfo ' ]['hasPreviousPage ' ]);
152+
106153 $ this ->assertEquals (2 , count ($ data ['artists ' ]['edges ' ][0 ]['node ' ]['performances ' ]['edges ' ]));
107154 }
108155
0 commit comments