MCPcopy
hub / github.com/pocketbase/pocketbase / TestSortFieldBuildExpr

Function TestSortFieldBuildExpr

tools/search/sort_test.go:11–51  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

9)
10
11func TestSortFieldBuildExpr(t *testing.T) {
12 resolver := search.NewSimpleFieldResolver("test1", "test2", "test3", "test4.sub")
13
14 scenarios := []struct {
15 sortField search.SortField
16 expectError bool
17 expectExpression string
18 }{
19 // empty
20 {search.SortField{"", search.SortDesc}, true, ""},
21 // unknown field
22 {search.SortField{"unknown", search.SortAsc}, true, ""},
23 // placeholder field
24 {search.SortField{"'test'", search.SortAsc}, true, ""},
25 // null field
26 {search.SortField{"null", search.SortAsc}, true, ""},
27 // allowed field - asc
28 {search.SortField{"test1", search.SortAsc}, false, "[[test1]] ASC"},
29 // allowed field - desc
30 {search.SortField{"test1", search.SortDesc}, false, "[[test1]] DESC"},
31 // special @random field (ignore direction)
32 {search.SortField{"@random", search.SortDesc}, false, "RANDOM()"},
33 // special _rowid_ field
34 {search.SortField{"@rowid", search.SortDesc}, false, "[[_rowid_]] DESC"},
35 }
36
37 for _, s := range scenarios {
38 t.Run(fmt.Sprintf("%s_%s", s.sortField.Name, s.sortField.Name), func(t *testing.T) {
39 result, err := s.sortField.BuildExpr(resolver)
40
41 hasErr := err != nil
42 if hasErr != s.expectError {
43 t.Fatalf("Expected hasErr %v, got %v (%v)", s.expectError, hasErr, err)
44 }
45
46 if result != s.expectExpression {
47 t.Fatalf("Expected expression %v, got %v", s.expectExpression, result)
48 }
49 })
50 }
51}
52
53func TestParseSortFromString(t *testing.T) {
54 scenarios := []struct {

Callers

nothing calls this directly

Calls 3

NewSimpleFieldResolverFunction · 0.92
RunMethod · 0.45
BuildExprMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…