From ffcc4a9363d4e83fa87cf9d0b01d9666c755838b Mon Sep 17 00:00:00 2001 From: leizige <52662214+keepsilence233@users.noreply.github.com> Date: Mon, 27 May 2024 09:26:49 +0800 Subject: [PATCH] Fix select page (#84) Fix select page --- gplus/dao.go | 6 ++++++ tests/dao_test.go | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/gplus/dao.go b/gplus/dao.go index dfff50e..341496a 100644 --- a/gplus/dao.go +++ b/gplus/dao.go @@ -50,6 +50,12 @@ func (dao Dao[T]) NewQuery() (*QueryCond[T], *T) { } func NewPage[T any](current, size int) *Page[T] { + if current <= 0 { + current = 1 + } + if size <= 0 { + size = 10 + } return &Page[T]{Current: current, Size: size} } diff --git a/tests/dao_test.go b/tests/dao_test.go index d077f92..8ad5133 100644 --- a/tests/dao_test.go +++ b/tests/dao_test.go @@ -296,6 +296,26 @@ func TestSelectPage(t *testing.T) { } +func TestSelectPageDefaultPageParam(t *testing.T) { + deleteOldData() + users := getUsers() + gplus.InsertBatch[User](users) + + query, model := gplus.NewQuery[User]() + page := gplus.NewPage[User](0, 0) + query.Eq(&model.Username, users[0].Username).Or().Eq(&model.Username, users[5].Username) + resultPage, db := gplus.SelectPage(page, query) + if db.Error != nil { + t.Errorf("errors happened when selectByIds : %v", db.Error) + } + if resultPage.Total != 2 { + t.Errorf("page total expects: %v, got %v", 2, resultPage.Total) + } + + AssertObjEqual(t, page.Current, 1) + AssertObjEqual(t, page.Size, 10) +} + func TestSelectPageGeneric2(t *testing.T) { deleteOldData() users := getUsers()