Files
aiops/backend/controller/server_sort_test.go
T
Logan.Li 09e6271bb4 feat: 支持服务器主机名排序
- 服务器列表默认按主机名升序并支持表头切换

- 后端按白名单排序并区分分页缓存键
2026-07-26 23:21:10 +08:00

28 lines
1.0 KiB
Go

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)
}
})
}
}