34 lines
1.2 KiB
Go
34 lines
1.2 KiB
Go
|
|
// 功能描述:验证配送点人员查询始终限制为当前配送点的配送角色。版本:v1.0.0。
|
|||
|
|
package delivery
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"strings"
|
|||
|
|
"testing"
|
|||
|
|
|
|||
|
|
"git.apinb.com/heqiapp/platforms/backend/api/internal/models"
|
|||
|
|
"github.com/DATA-DOG/go-sqlmock"
|
|||
|
|
"gorm.io/driver/postgres"
|
|||
|
|
"gorm.io/gorm"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// TestDeliveryStaffQueryKeepsRoleScope 验证列表、详情和头像共用的范围包含 delivery 角色。
|
|||
|
|
func TestDeliveryStaffQueryKeepsRoleScope(t *testing.T) {
|
|||
|
|
connection, _, err := sqlmock.New()
|
|||
|
|
if err != nil {
|
|||
|
|
t.Fatalf("创建 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("打开 GORM 失败:%v", err)
|
|||
|
|
}
|
|||
|
|
point := models.DeliveryBasic{Entity: models.Entity{ID: 22}, GasBasicID: 11}
|
|||
|
|
statement := deliveryStaffQuery(databaseService, point).
|
|||
|
|
Where("identity = ?", "staff-identity").Find(&models.StaffAccount{}).Statement.SQL.String()
|
|||
|
|
for _, required := range []string{"gas_basic_id", "delivery_basic_id", "role_code"} {
|
|||
|
|
if !strings.Contains(statement, required) {
|
|||
|
|
t.Fatalf("配送人员范围缺少 %s:%s", required, statement)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|