@@ -168,6 +168,26 @@ func TestParse(t *testing.T) {
168168 _ , err := Parse (url.Values {"page_size" : {"invalid-int" }}, NewStringPageToken )
169169 require .ErrorIs (t , err , strconv .ErrSyntax )
170170 })
171+
172+ t .Run ("empty tokens and page sizes work as if unset, empty values are skipped" , func (t * testing.T ) {
173+ opts , err := Parse (url.Values {}, NewStringPageToken )
174+ require .NoError (t , err )
175+ paginator := GetPaginator (append (opts , WithDefaultToken (StringPageToken ("default" )))... )
176+ assert .Equal (t , "default" , paginator .Token ().Encode ())
177+ assert .Equal (t , 100 , paginator .Size ())
178+
179+ opts , err = Parse (url.Values {"page_token" : {"" }, "page_size" : {"" }}, NewStringPageToken )
180+ require .NoError (t , err )
181+ paginator = GetPaginator (append (opts , WithDefaultToken (StringPageToken ("default2" )))... )
182+ assert .Equal (t , "default2" , paginator .Token ().Encode ())
183+ assert .Equal (t , 100 , paginator .Size ())
184+
185+ opts , err = Parse (url.Values {"page_token" : {"" , "foo" , "" }, "page_size" : {"" , "123" , "" }}, NewStringPageToken )
186+ require .NoError (t , err )
187+ paginator = GetPaginator (append (opts , WithDefaultToken (StringPageToken ("default3" )))... )
188+ assert .Equal (t , "foo" , paginator .Token ().Encode ())
189+ assert .Equal (t , 123 , paginator .Size ())
190+ })
171191}
172192
173193func TestPaginateWithAdditionalColumn (t * testing.T ) {
0 commit comments