MarketingSystemDataExportTool/server/internal/exporter/sqlbuilder_test.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))
}
}