feat: 支持服务器主机名排序
- 服务器列表默认按主机名升序并支持表头切换 - 后端按白名单排序并区分分页缓存键
This commit is contained in:
1 parent
6b5fc6a5c3
commit
09e6271bb4
5 files changed
+83
-7
No files matched your search
@@ -0,0 +1,27 @@
|
||||
package controller
|
||||
|
||||
import "testing"
|
||||
|
||||
// TestServerOrderClause 验证服务器排序字段仅使用后端白名单表达式。 // Logan.Li
|
||||
func TestServerOrderClause(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
sortField string
|
||||
order string
|
||||
want string
|
||||
}{
|
||||
{name: "默认排序", want: "created_at DESC"},
|
||||
{name: "主机名升序", sortField: "hostname", order: "asc", want: "LOWER(hostname) ASC, id ASC"},
|
||||
{name: "主机名降序", sortField: "hostname", order: "desc", want: "LOWER(hostname) DESC, id DESC"},
|
||||
{name: "非法方向回退升序", sortField: "hostname", order: "invalid", want: "LOWER(hostname) ASC, id ASC"},
|
||||
{name: "非法字段回退默认", sortField: "hostname; DROP TABLE sys_servers", order: "asc", want: "created_at DESC"},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := serverOrderClause(tt.sortField, tt.order); got != tt.want {
|
||||
t.Fatalf("serverOrderClause(%q, %q) = %q, want %q", tt.sortField, tt.order, got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user