@@ -127,13 +127,17 @@ func loadDataForListMissingOneImplFeatureList(ctx context.Context, t *testing.T,
127127 }
128128}
129129
130+ // nolint:unparam // WONTFIX
130131func assertMissingOneImplFeatureList (ctx context.Context , t * testing.T , targetDate time.Time ,
131- targetBrowser string , otherBrowsers []string , expectedPage * MissingOneImplFeatureListPage ) {
132+ targetBrowser string , otherBrowsers []string , expectedPage * MissingOneImplFeatureListPage , token * string ,
133+ pageSize int ) {
132134 result , err := spannerClient .MissingOneImplFeatureList (
133135 ctx ,
134136 targetBrowser ,
135137 otherBrowsers ,
136138 targetDate ,
139+ pageSize ,
140+ token ,
137141 )
138142 if err != nil {
139143 t .Errorf ("Unexpected error: %v" , err )
@@ -157,6 +161,8 @@ func testMissingOneImplFeatureListSuite(
157161 "barBrowser" ,
158162 }
159163 targetDate := time .Date (2024 , 4 , 15 , 0 , 0 , 0 , 0 , time .UTC )
164+ pageSize := 25
165+ token := encodeMissingOneImplFeatureListCursor (0 )
160166
161167 t .Run ("simple successful query" , func (t * testing.T ) {
162168 expectedResult := & MissingOneImplFeatureListPage {
@@ -183,6 +189,8 @@ func testMissingOneImplFeatureListSuite(
183189 targetBrowser ,
184190 otherBrowsers ,
185191 expectedResult ,
192+ & token ,
193+ pageSize ,
186194 )
187195 })
188196
@@ -199,6 +207,8 @@ func testMissingOneImplFeatureListSuite(
199207 targetBrowser ,
200208 otherBrowsers ,
201209 expectedResult ,
210+ & token ,
211+ pageSize ,
202212 )
203213 })
204214
@@ -231,8 +241,94 @@ func testMissingOneImplFeatureListSuite(
231241 targetBrowser ,
232242 subsetBrowsers ,
233243 expectedResult ,
244+ & token ,
245+ pageSize ,
234246 )
235247 })
248+
249+ t .Run ("simple successful query with pagination" , func (t * testing.T ) {
250+ pageToken := encodeMissingOneImplFeatureListCursor (1 )
251+ expectedResult := & MissingOneImplFeatureListPage {
252+ NextPageToken : nil ,
253+ FeatureList : []MissingOneImplFeature {
254+ // fooBrowser 113 release
255+ // Currently supported features:
256+ // fooBrowser: FeatureX, FeatureZ, FeatureY, FeatureW
257+ // barBrowser: FeatureX, FeatureZ, FeatureY, FeatureW
258+ // bazBrowser: FeatureX, FeatureY
259+ // Missing in on for bazBrowser: FeatureW, FeatureZ
260+ {
261+ WebFeatureID : "FeatureZ" ,
262+ },
263+ },
264+ }
265+ assertMissingOneImplFeatureList (
266+ ctx ,
267+ t ,
268+ targetDate ,
269+ targetBrowser ,
270+ otherBrowsers ,
271+ expectedResult ,
272+ & pageToken ,
273+ pageSize ,
274+ )
275+ })
276+
277+ t .Run ("Return a page token with page size 1" , func (t * testing.T ) {
278+ onePerPage := 1
279+ returnToken := encodeMissingOneImplFeatureListCursor (1 )
280+ expectedResult := & MissingOneImplFeatureListPage {
281+ NextPageToken : & returnToken ,
282+ FeatureList : []MissingOneImplFeature {
283+ // fooBrowser 113 release
284+ // Currently supported features:
285+ // fooBrowser: FeatureX, FeatureZ, FeatureY, FeatureW
286+ // barBrowser: FeatureX, FeatureZ, FeatureY, FeatureW
287+ // bazBrowser: FeatureX, FeatureY
288+ // Missing in on for bazBrowser: FeatureW, FeatureZ
289+ {
290+ WebFeatureID : "FeatureW" ,
291+ },
292+ },
293+ }
294+ assertMissingOneImplFeatureList (
295+ ctx ,
296+ t ,
297+ targetDate ,
298+ targetBrowser ,
299+ otherBrowsers ,
300+ expectedResult ,
301+ & token ,
302+ onePerPage ,
303+ )
304+
305+ pageTwoToken := encodeMissingOneImplFeatureListCursor (2 )
306+ expectedResultPageTwo := & MissingOneImplFeatureListPage {
307+ NextPageToken : & pageTwoToken ,
308+ FeatureList : []MissingOneImplFeature {
309+ // fooBrowser 113 release
310+ // Currently supported features:
311+ // fooBrowser: FeatureX, FeatureZ, FeatureY, FeatureW
312+ // barBrowser: FeatureX, FeatureZ, FeatureY, FeatureW
313+ // bazBrowser: FeatureX, FeatureY
314+ // Missing in on for bazBrowser: FeatureW, FeatureZ
315+ {
316+ WebFeatureID : "FeatureZ" ,
317+ },
318+ },
319+ }
320+ assertMissingOneImplFeatureList (
321+ ctx ,
322+ t ,
323+ targetDate ,
324+ targetBrowser ,
325+ otherBrowsers ,
326+ expectedResultPageTwo ,
327+ & returnToken ,
328+ onePerPage ,
329+ )
330+ })
331+
236332 })
237333}
238334
0 commit comments