RPC: don't cap page size in unsafe mode (#6329)

This commit is contained in:
gotjoshua
2021-04-12 13:51:56 +02:00
committed by GitHub
parent d0828f3454
commit f563bd4ff1
3 changed files with 18 additions and 9 deletions
+3 -1
View File
@@ -126,7 +126,9 @@ func validatePerPage(perPagePtr *int) int {
perPage := *perPagePtr
if perPage < 1 {
return defaultPerPage
} else if perPage > maxPerPage {
// in unsafe mode there is no max on the page size but in safe mode
// we cap it to maxPerPage
} else if perPage > maxPerPage && !env.Config.Unsafe {
return maxPerPage
}
return perPage
+14 -8
View File
@@ -58,17 +58,16 @@ func TestPaginationPage(t *testing.T) {
func TestPaginationPerPage(t *testing.T) {
cases := []struct {
totalCount int
perPage int
newPerPage int
}{
{5, 0, defaultPerPage},
{5, 1, 1},
{5, 2, 2},
{5, defaultPerPage, defaultPerPage},
{5, maxPerPage - 1, maxPerPage - 1},
{5, maxPerPage, maxPerPage},
{5, maxPerPage + 1, maxPerPage},
{0, defaultPerPage},
{1, 1},
{2, 2},
{defaultPerPage, defaultPerPage},
{maxPerPage - 1, maxPerPage - 1},
{maxPerPage, maxPerPage},
{maxPerPage + 1, maxPerPage},
}
for _, c := range cases {
@@ -79,4 +78,11 @@ func TestPaginationPerPage(t *testing.T) {
// nil case
p := validatePerPage(nil)
assert.Equal(t, defaultPerPage, p)
// test in unsafe mode
env.Config.Unsafe = true
perPage := 1000
p = validatePerPage(&perPage)
assert.Equal(t, perPage, p)
env.Config.Unsafe = false
}