Files
summercms/modules/lagoon/paginate_test.go
Jakub Zych 5e50b166ef refactor(10.2-01): nest framework packages under modules
- Move remaining beach packages and embedded admin assets\n- Rewrite framework, example, build, and gate paths
2026-09-28 02:21:02 +02:00

43 lines
1.0 KiB
Go

package lagoon
import (
"encoding/json"
"strings"
"testing"
)
func TestPaginateEnvelope(t *testing.T) {
got := Paginate([]string{"a", "b", "c"}, 1, 2, 3)
if got.Meta.CurrentPage != 1 || got.Meta.LastPage != 2 || got.Meta.PerPage != 2 || got.Meta.Total != 3 {
t.Fatalf("meta = %+v", got.Meta)
}
raw, err := json.Marshal(got)
if err != nil {
t.Fatal(err)
}
if strings.Contains(string(raw), "links") {
t.Fatalf("envelope must not contain links: %s", raw)
}
if !strings.Contains(string(raw), `"data"`) || !strings.Contains(string(raw), `"meta"`) {
t.Fatalf("missing data/meta: %s", raw)
}
}
func TestPaginateZeroPerPage(t *testing.T) {
got := Paginate([]int{1}, 1, 0, 10)
if got.Meta.LastPage != 1 {
t.Fatalf("last_page = %d, want 1", got.Meta.LastPage)
}
}
func TestPaginateNilDataIsEmptyArray(t *testing.T) {
got := Paginate[string](nil, 1, 10, 0)
raw, err := json.Marshal(got)
if err != nil {
t.Fatal(err)
}
if !strings.Contains(string(raw), `"data":[]`) {
t.Fatalf("nil rows must marshal as []: %s", raw)
}
}