...
1 package ordering
2
3 import (
4 "testing"
5
6 "gotest.tools/v3/assert"
7 )
8
9 func TestParseOrderBy(t *testing.T) {
10 t.Parallel()
11 t.Run("success", func(t *testing.T) {
12 t.Parallel()
13 r := mockRequest{orderBy: "foo asc,bar desc"}
14 expected := OrderBy{
15 Fields: []Field{
16 {Path: "foo"},
17 {Path: "bar", Desc: true},
18 },
19 }
20 actual, err := ParseOrderBy(r)
21 assert.NilError(t, err)
22 assert.DeepEqual(t, expected, actual)
23 })
24
25 t.Run("error", func(t *testing.T) {
26 t.Parallel()
27 r := mockRequest{orderBy: "/foo"}
28 actual, err := ParseOrderBy(r)
29 assert.ErrorContains(t, err, "invalid character '/'")
30 assert.DeepEqual(t, OrderBy{}, actual)
31 })
32 }
33
34 type mockRequest struct {
35 orderBy string
36 }
37
38 var _ Request = &mockRequest{}
39
40 func (m mockRequest) GetOrderBy() string {
41 return m.orderBy
42 }
43
View as plain text