File tree Expand file tree Collapse file tree 2 files changed +38
-2
lines changed
Expand file tree Collapse file tree 2 files changed +38
-2
lines changed Original file line number Diff line number Diff line change @@ -37,8 +37,14 @@ protected function registerMacro()
3737
3838 $ size = (int ) request ()->input ($ paginationParameter .'. ' .$ sizeParameter , $ defaultSize );
3939
40- $ size = $ size > $ maxResults ? $ maxResults : $ size ;
41-
40+ if ($ size <= 0 ) {
41+ $ size = $ defaultSize ;
42+ }
43+
44+ if ($ size > $ maxResults ) {
45+ $ size = $ maxResults ;
46+ }
47+
4248 $ paginator = $ this
4349 ->{$ paginationMethod }($ size , ['* ' ], $ paginationParameter .'. ' .$ numberParameter )
4450 ->setPageName ($ paginationParameter .'[ ' .$ numberParameter .'] ' )
Original file line number Diff line number Diff line change @@ -47,4 +47,34 @@ public function it_will_use_the_configured_page_number_parameter()
4747
4848 $ response ->assertJsonFragment (['current_page ' => 2 ]);
4949 }
50+
51+ /** @test */
52+ public function it_will_use_default_size_when_page_size_is_zero ()
53+ {
54+ $ default_size = config ('json-api-paginate.default_size ' );
55+
56+ $ response = $ this ->get ('/?page[size]=0 ' );
57+
58+ $ response ->assertJsonFragment (['per_page ' => $ default_size ]);
59+ }
60+
61+ /** @test */
62+ public function it_will_use_default_size_when_page_size_is_negative ()
63+ {
64+ $ default_size = config ('json-api-paginate.default_size ' );
65+
66+ $ response = $ this ->get ('/?page[size]=-1 ' );
67+
68+ $ response ->assertJsonFragment (['per_page ' => $ default_size ]);
69+ }
70+
71+ /** @test */
72+ public function it_will_use_default_size_when_page_size_is_illegal ()
73+ {
74+ $ default_size = config ('json-api-paginate.default_size ' );
75+
76+ $ response = $ this ->get ('/?page[size]=Rpfwj5N1b7 ' );
77+
78+ $ response ->assertJsonFragment (['per_page ' => $ default_size ]);
79+ }
5080}
You can’t perform that action at this time.
0 commit comments