feat: handle pagination in bucket list (#307)

This commit is contained in:
Daniel Moran
2021-10-15 15:14:59 -07:00
committed by GitHub
parent d92bede8d3
commit 6fda4cceed
4 changed files with 165 additions and 7 deletions

View File

@ -89,6 +89,62 @@ func TestBucketsList(t *testing.T) {
`123\s+my-bucket\s+1h0m0s\s+n/a\s+456`,
},
},
{
name: "pagination via 'offset'",
params: bucket.BucketsListParams{
PageSize: 2,
Offset: 1,
},
configOrgName: "my-default-org",
registerBucketExpectations: func(t *testing.T, bucketsApi *mock.MockBucketsApi) {
bucketsApi.EXPECT().GetBuckets(gomock.Any()).Return(api.ApiGetBucketsRequest{ApiService: bucketsApi})
bucketsApi.EXPECT().GetBucketsExecute(tmock.MatchedBy(func(in api.ApiGetBucketsRequest) bool {
return assert.Equal(t, "my-default-org", *in.GetOrg()) &&
assert.Equal(t, int32(2), *in.GetLimit()) &&
assert.Equal(t, int32(1), *in.GetOffset())
})).Return(api.Buckets{
Buckets: &[]api.Bucket{
{
Id: api.PtrString("222"),
Name: "my-bucket2",
OrgID: api.PtrString("456"),
RetentionRules: []api.RetentionRule{
{EverySeconds: 2400},
},
},
{
Id: api.PtrString("333"),
Name: "my-bucket3",
OrgID: api.PtrString("456"),
RetentionRules: []api.RetentionRule{
{EverySeconds: 3600},
},
},
},
}, nil)
bucketsApi.EXPECT().GetBucketsExecute(tmock.MatchedBy(func(in api.ApiGetBucketsRequest) bool {
return assert.Equal(t, "my-default-org", *in.GetOrg()) &&
assert.Equal(t, int32(2), *in.GetLimit()) &&
assert.Equal(t, int32(3), *in.GetOffset())
})).Return(api.Buckets{
Buckets: &[]api.Bucket{
{
Id: api.PtrString("444"),
Name: "my-bucket4",
OrgID: api.PtrString("456"),
RetentionRules: []api.RetentionRule{
{EverySeconds: 4800},
},
},
},
}, nil)
},
expectedStdoutPatterns: []string{
`222\s+my-bucket2\s+40m0s\s+n/a\s+456`,
`333\s+my-bucket3\s+1h0m0s\s+n/a\s+456`,
`444\s+my-bucket4\s+1h20m0s\s+n/a\s+456`,
},
},
{
name: "override org by ID",
params: bucket.BucketsListParams{
@ -109,6 +165,7 @@ func TestBucketsList(t *testing.T) {
name: "override org by name",
params: bucket.BucketsListParams{
OrgName: "my-org",
Limit: 2,
},
configOrgName: "my-default-org",
registerBucketExpectations: func(t *testing.T, bucketsApi *mock.MockBucketsApi) {
@ -148,6 +205,7 @@ func TestBucketsList(t *testing.T) {
name: "list multiple bucket schema types",
params: bucket.BucketsListParams{
OrgName: "my-org",
Limit: 3,
},
configOrgName: "my-default-org",
registerBucketExpectations: func(t *testing.T, bucketsApi *mock.MockBucketsApi) {