fix pagintor nil
parent
2e095de7f6
commit
cfc593cc67
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"go.goroot": "/opt/go/sdk/go1",
|
||||
"go.goroot": "/opt/go/sdk/go1.25",
|
||||
"go.toolsEnvVars": {
|
||||
"GOEXPERIMENT": "jsonv2"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,10 @@ func New[T any](items []T, page int, limit int, pageCount int) *Paginator[T] {
|
|||
}
|
||||
|
||||
func (p *Paginator[T]) Items() []T {
|
||||
if len(p.rawTtems) == 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 计算起始索引和结束索引
|
||||
startIdx := (p.curPage - 1) * p.limit
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ package paginator
|
|||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestCut(t *testing.T) {
|
||||
|
|
@ -12,3 +14,55 @@ func TestCut(t *testing.T) {
|
|||
pag := New(items, page, limit, pageCount)
|
||||
t.Logf("pag: %s", pag)
|
||||
}
|
||||
|
||||
func TestNilItems(t *testing.T) {
|
||||
pag := New[int](nil, 1, 10, 0)
|
||||
|
||||
assert.Equal(t, 0, pag.TotalCount())
|
||||
assert.Equal(t, 0, pag.TotalPage())
|
||||
assert.Empty(t, pag.Items())
|
||||
assert.Equal(t, 0, pag.CurPage())
|
||||
assert.Equal(t, 0, pag.PreviewPage())
|
||||
assert.Equal(t, 0, pag.NextPage())
|
||||
assert.Equal(t, 0, pag.FirstPage())
|
||||
assert.Equal(t, 0, pag.LastPage())
|
||||
assert.Empty(t, pag.PageRange())
|
||||
}
|
||||
|
||||
func TestEmptyItems(t *testing.T) {
|
||||
pag := New([]int{}, 1, 10, 0)
|
||||
|
||||
assert.Equal(t, 0, pag.TotalCount())
|
||||
assert.Equal(t, 0, pag.TotalPage())
|
||||
assert.Empty(t, pag.Items())
|
||||
assert.Equal(t, 0, pag.CurPage())
|
||||
assert.Equal(t, 0, pag.PreviewPage())
|
||||
assert.Equal(t, 0, pag.NextPage())
|
||||
assert.Equal(t, 0, pag.FirstPage())
|
||||
assert.Equal(t, 0, pag.LastPage())
|
||||
assert.Empty(t, pag.PageRange())
|
||||
}
|
||||
|
||||
func TestNilItemsWithDifferentPages(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
page int
|
||||
limit int
|
||||
pageCount int
|
||||
}{
|
||||
{name: "page=0,limit=1", page: 0, limit: 1, pageCount: 0},
|
||||
{name: "page=1,limit=1", page: 1, limit: 1, pageCount: 0},
|
||||
{name: "page=5,limit=10", page: 5, limit: 10, pageCount: 0},
|
||||
{name: "page=1,limit=1,pageCount=3", page: 1, limit: 1, pageCount: 3},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
pag := New[string](nil, tt.page, tt.limit, tt.pageCount)
|
||||
|
||||
assert.Equal(t, 0, pag.TotalCount())
|
||||
assert.Equal(t, 0, pag.TotalPage())
|
||||
assert.Empty(t, pag.Items())
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue