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
This commit is contained in:
42
modules/lagoon/order_test.go
Normal file
42
modules/lagoon/order_test.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package lagoon
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestOrderClauseAllowList(t *testing.T) {
|
||||
allowed := []string{"golem15_fonoteka_genres.name", "items.title"}
|
||||
|
||||
got, err := orderClause("golem15_fonoteka_genres.name", "asc", allowed)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got != "golem15_fonoteka_genres.name ASC" {
|
||||
t.Fatalf("got %q", got)
|
||||
}
|
||||
if strings.Contains(strings.ToLower(got), "collate") {
|
||||
t.Fatalf("must not emit COLLATE: %q", got)
|
||||
}
|
||||
|
||||
got, err = orderClause("items.title", "DESC", allowed)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got != "items.title DESC" {
|
||||
t.Fatalf("got %q", got)
|
||||
}
|
||||
|
||||
if _, err := orderClause("golem15_fonoteka_genres.name;drop table x", "asc", allowed); err == nil {
|
||||
t.Fatal("want reject unknown column")
|
||||
}
|
||||
if _, err := orderClause("golem15_fonoteka_genres.name", "ascending", allowed); err == nil {
|
||||
t.Fatal("want reject unknown direction")
|
||||
}
|
||||
if _, err := OrderBy(nil, "items.title", "asc", allowed); err == nil {
|
||||
t.Fatal("want nil db error")
|
||||
}
|
||||
if _, err := orderClause("items.title", "asc", nil); err == nil {
|
||||
t.Fatal("empty allow-list must reject")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user