@@ -23,13 +23,13 @@ public function testFirst(): void
23
23
'query ' => new ObjectType ([
24
24
'name ' => 'query ' ,
25
25
'fields ' => [
26
- 'performance ' => $ driver ->completeConnection (Performance::class),
26
+ 'performances ' => $ driver ->completeConnection (Performance::class),
27
27
],
28
28
]),
29
29
]);
30
30
31
31
$ query = '{
32
- performance (pagination: { first: 2 }) {
32
+ performances (pagination: { first: 2 }) {
33
33
pageInfo {
34
34
hasNextPage
35
35
hasPreviousPage
@@ -48,10 +48,54 @@ public function testFirst(): void
48
48
49
49
$ data = $ result ->toArray ()['data ' ];
50
50
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 ' ]);
53
53
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 ' ]));
55
99
}
56
100
57
101
public function testCollectionFirst (): void
@@ -72,7 +116,7 @@ public function testCollectionFirst(): void
72
116
cursor
73
117
node {
74
118
id
75
- performances (pagination: { first: 2 }) {
119
+ performances (pagination: { first: 2 after: "MQ==" }) {
76
120
pageInfo {
77
121
hasNextPage
78
122
hasPreviousPage
@@ -103,6 +147,9 @@ public function testCollectionFirst(): void
103
147
$ data ['artists ' ]['edges ' ][0 ]['node ' ]['performances ' ]['edges ' ][1 ]['cursor ' ],
104
148
);
105
149
150
+ $ this ->assertTrue ($ data ['artists ' ]['edges ' ][0 ]['node ' ]['performances ' ]['pageInfo ' ]['hasNextPage ' ]);
151
+ $ this ->assertTrue ($ data ['artists ' ]['edges ' ][0 ]['node ' ]['performances ' ]['pageInfo ' ]['hasPreviousPage ' ]);
152
+
106
153
$ this ->assertEquals (2 , count ($ data ['artists ' ]['edges ' ][0 ]['node ' ]['performances ' ]['edges ' ]));
107
154
}
108
155
0 commit comments