Files
platforms/backend/api/internal/logic/gas/gasorder_test.go

38 lines
1.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 功能描述:验证气站合同与配送订单展示查询的对象权限范围。
// 版本v1.0.0
package gas
import (
"strings"
"testing"
"github.com/DATA-DOG/go-sqlmock"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
// TestScopedOrderDisplayQuery 验证订单用户名称直接按订单主键读取且查询受当前气站约束。
func TestScopedOrderDisplayQuery(t *testing.T) {
connection, _, err := sqlmock.New()
if err != nil {
t.Fatalf("create SQL mock: %v", err)
}
t.Cleanup(func() { _ = connection.Close() })
databaseService, err := gorm.Open(postgres.New(postgres.Config{Conn: connection}), &gorm.Config{DryRun: true})
if err != nil {
t.Fatalf("open GORM database: %v", err)
}
statement := scopedOrderDisplayQuery(databaseService, 42).
Find(&[]gasOrderListDisplay{}).Statement.SQL.String()
for _, fragment := range []string{
"LEFT JOIN user_account AS order_user",
"user_account_display_name",
"gasorder_basic.gas_basic_id =",
} {
if !strings.Contains(statement, fragment) {
t.Fatalf("scoped order display SQL must include %q, got: %s", fragment, statement)
}
}
}