summaryrefslogtreecommitdiff
path: root/internal/paging/page_test.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2023-11-20 12:22:28 +0000
committerLibravatar GitHub <noreply@github.com>2023-11-20 12:22:28 +0000
commit16275853eb8a43e0b113d476b896de53585c1281 (patch)
treeb2e0e6b4fc7cd4f1cc781e5c305ec24df38e6718 /internal/paging/page_test.go
parent[chore]: Bump github.com/tdewolff/minify/v2 from 2.20.6 to 2.20.7 (#2370) (diff)
downloadgotosocial-16275853eb8a43e0b113d476b896de53585c1281.tar.xz
[bugfix] self-referencing collection pages for status replies (#2364)
Diffstat (limited to 'internal/paging/page_test.go')
-rw-r--r--internal/paging/page_test.go56
1 files changed, 30 insertions, 26 deletions
diff --git a/internal/paging/page_test.go b/internal/paging/page_test.go
index 9eeb90882..3046dfcdd 100644
--- a/internal/paging/page_test.go
+++ b/internal/paging/page_test.go
@@ -19,12 +19,12 @@ package paging_test
import (
"math/rand"
+ "slices"
"testing"
"time"
"github.com/oklog/ulid"
"github.com/superseriousbusiness/gotosocial/internal/paging"
- "golang.org/x/exp/slices"
)
// random reader according to current-time source seed.
@@ -77,9 +77,7 @@ func TestPage(t *testing.T) {
var cases = []Case{
CreateCase("minID and maxID set", func(ids []string) ([]string, *paging.Page, []string) {
// Ensure input slice sorted ascending for min_id
- slices.SortFunc(ids, func(a, b string) bool {
- return a > b // i.e. largest at lowest idx
- })
+ slices.SortFunc(ids, ascending)
// Select random indices in slice.
minIdx := randRd.Intn(len(ids))
@@ -93,7 +91,7 @@ var cases = []Case{
expect := slices.Clone(ids)
expect = cutLower(expect, minID)
expect = cutUpper(expect, maxID)
- expect = paging.Reverse(expect)
+ slices.Reverse(expect)
// Return page and expected IDs.
return ids, &paging.Page{
@@ -103,9 +101,7 @@ var cases = []Case{
}),
CreateCase("minID, maxID and limit set", func(ids []string) ([]string, *paging.Page, []string) {
// Ensure input slice sorted ascending for min_id
- slices.SortFunc(ids, func(a, b string) bool {
- return a > b // i.e. largest at lowest idx
- })
+ slices.SortFunc(ids, ascending)
// Select random parameters in slice.
minIdx := randRd.Intn(len(ids))
@@ -120,7 +116,7 @@ var cases = []Case{
expect := slices.Clone(ids)
expect = cutLower(expect, minID)
expect = cutUpper(expect, maxID)
- expect = paging.Reverse(expect)
+ slices.Reverse(expect)
// Now limit the slice.
if limit < len(expect) {
@@ -136,9 +132,7 @@ var cases = []Case{
}),
CreateCase("minID, maxID and too-large limit set", func(ids []string) ([]string, *paging.Page, []string) {
// Ensure input slice sorted ascending for min_id
- slices.SortFunc(ids, func(a, b string) bool {
- return a > b // i.e. largest at lowest idx
- })
+ slices.SortFunc(ids, ascending)
// Select random parameters in slice.
minIdx := randRd.Intn(len(ids))
@@ -152,7 +146,7 @@ var cases = []Case{
expect := slices.Clone(ids)
expect = cutLower(expect, minID)
expect = cutUpper(expect, maxID)
- expect = paging.Reverse(expect)
+ slices.Reverse(expect)
// Return page and expected IDs.
return ids, &paging.Page{
@@ -163,9 +157,7 @@ var cases = []Case{
}),
CreateCase("sinceID and maxID set", func(ids []string) ([]string, *paging.Page, []string) {
// Ensure input slice sorted descending for since_id
- slices.SortFunc(ids, func(a, b string) bool {
- return a < b // i.e. smallest at lowest idx
- })
+ slices.SortFunc(ids, descending)
// Select random indices in slice.
sinceIdx := randRd.Intn(len(ids))
@@ -188,9 +180,7 @@ var cases = []Case{
}),
CreateCase("maxID set", func(ids []string) ([]string, *paging.Page, []string) {
// Ensure input slice sorted descending for max_id
- slices.SortFunc(ids, func(a, b string) bool {
- return a < b // i.e. smallest at lowest idx
- })
+ slices.SortFunc(ids, descending)
// Select random indices in slice.
maxIdx := randRd.Intn(len(ids))
@@ -209,9 +199,7 @@ var cases = []Case{
}),
CreateCase("sinceID set", func(ids []string) ([]string, *paging.Page, []string) {
// Ensure input slice sorted descending for since_id
- slices.SortFunc(ids, func(a, b string) bool {
- return a < b
- })
+ slices.SortFunc(ids, descending)
// Select random indices in slice.
sinceIdx := randRd.Intn(len(ids))
@@ -230,9 +218,7 @@ var cases = []Case{
}),
CreateCase("minID set", func(ids []string) ([]string, *paging.Page, []string) {
// Ensure input slice sorted ascending for min_id
- slices.SortFunc(ids, func(a, b string) bool {
- return a > b // i.e. largest at lowest idx
- })
+ slices.SortFunc(ids, ascending)
// Select random indices in slice.
minIdx := randRd.Intn(len(ids))
@@ -243,7 +229,7 @@ var cases = []Case{
// Create expected output.
expect := slices.Clone(ids)
expect = cutLower(expect, minID)
- expect = paging.Reverse(expect)
+ slices.Reverse(expect)
// Return page and expected IDs.
return ids, &paging.Page{
@@ -296,3 +282,21 @@ func generateSlice(len int) []string {
}
return in
}
+
+func ascending(a, b string) int {
+ if a > b {
+ return 1
+ } else if a < b {
+ return -1
+ }
+ return 0
+}
+
+func descending(a, b string) int {
+ if a < b {
+ return 1
+ } else if a > b {
+ return -1
+ }
+ return 0
+}