satellite/payments: fix transaction list pagination

Change-Id: I533f637e5cb12b47d7f7248f8bf7de93bd8be000
This commit is contained in:
Yaroslav Vorobiov 2020-02-11 15:11:14 +02:00
parent 208c05e3db
commit bd9cebda5b
2 changed files with 28 additions and 7 deletions

View File

@ -114,7 +114,8 @@ func TestTransactionsDBList(t *testing.T) {
defer ctx.Cleanup()
const (
transactionCount = 10
limit = 5
transactionCount = limit * 4
)
// create transactions
@ -154,10 +155,20 @@ func TestTransactionsDBList(t *testing.T) {
require.NoError(t, err)
}
page, err := db.StripeCoinPayments().Transactions().ListPending(ctx, 0, transactionCount, time.Now())
page, err := db.StripeCoinPayments().Transactions().ListPending(ctx, 0, limit, time.Now())
require.NoError(t, err)
pendingTXs := page.Transactions
for page.Next {
page, err = db.StripeCoinPayments().Transactions().ListPending(ctx, page.NextOffset, limit, time.Now())
require.NoError(t, err)
pendingTXs = append(pendingTXs, page.Transactions...)
}
require.False(t, page.Next)
require.Equal(t, transactionCount, len(page.Transactions))
require.Equal(t, transactionCount, len(pendingTXs))
for _, act := range page.Transactions {
for _, exp := range txs {
@ -196,10 +207,20 @@ func TestTransactionsDBList(t *testing.T) {
err := db.StripeCoinPayments().Transactions().Update(ctx, updates, applies)
require.NoError(t, err)
page, err := db.StripeCoinPayments().Transactions().ListUnapplied(ctx, 0, transactionCount, time.Now())
page, err := db.StripeCoinPayments().Transactions().ListUnapplied(ctx, 0, limit, time.Now())
require.NoError(t, err)
unappliedTXs := page.Transactions
for page.Next {
page, err = db.StripeCoinPayments().Transactions().ListUnapplied(ctx, page.NextOffset, limit, time.Now())
require.NoError(t, err)
unappliedTXs = append(unappliedTXs, page.Transactions...)
}
require.False(t, page.Next)
require.Equal(t, transactionCount, len(page.Transactions))
require.Equal(t, transactionCount, len(unappliedTXs))
for _, act := range page.Transactions {
for _, exp := range updatedTxs {

View File

@ -260,7 +260,7 @@ func (db *coinPaymentsTransactions) ListPending(ctx context.Context, offset int6
if len(page.Transactions) == limit+1 {
page.Next = true
page.NextOffset = offset + int64(limit) + 1
page.NextOffset = offset + int64(limit)
page.Transactions = page.Transactions[:len(page.Transactions)-1]
}
@ -343,7 +343,7 @@ func (db *coinPaymentsTransactions) ListUnapplied(ctx context.Context, offset in
if len(page.Transactions) == limit+1 {
page.Next = true
page.NextOffset = offset + int64(limit) + 1
page.NextOffset = offset + int64(limit)
page.Transactions = page.Transactions[:len(page.Transactions)-1]
}