35 lines
858 B
Go
35 lines
858 B
Go
package exporter
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
"server/internal/schema"
|
|
)
|
|
|
|
func TestBuildSQL_FieldOrderAndCount_YMT(t *testing.T) {
|
|
wl := schema.AllWhitelist()
|
|
req := BuildRequest{
|
|
MainTable: "order_info",
|
|
Datasource: "ymt",
|
|
Fields: []string{
|
|
"order.order_number",
|
|
"order.merchant_name",
|
|
"merchant.name",
|
|
"order.pay_amount",
|
|
},
|
|
Filters: map[string]interface{}{"type_eq": 2},
|
|
}
|
|
sql, _, err := BuildSQL(req, wl)
|
|
if err != nil {
|
|
t.Fatalf("build sql error: %v", err)
|
|
}
|
|
// count aliases
|
|
parts := strings.Split(sql, " AS `")
|
|
// first part is before first alias
|
|
aliasCount := len(parts) - 1
|
|
if aliasCount != len(req.Fields) {
|
|
t.Fatalf("alias count %d != fields %d", aliasCount, len(req.Fields))
|
|
}
|
|
}
|
|
|