package system import ( "context" "testing" ) func TestBusinessFieldsSurviveMigrationAndIdentityLoad(t *testing.T) { db, err := openWithDriver("sqlite", "file:"+t.Name()+"?mode=memory&cache=shared") if err != nil { t.Fatal(err) } if err = migrateAll(db); err != nil { t.Fatal(err) } po := userPO{Username: "business", UUID: "business-uuid", Password: "original-hash", Enable: 1, Level: 2, ParentID: 11, IDPath: "0,11", RealName: "商务姓名", QQNumber: "12345", BusinessStatus: 3, RejectReason: "审核资料"} if err = db.Create(&po).Error; err != nil { t.Fatal(err) } if err = ensureBusinessUserFields(db); err != nil { t.Fatal(err) } r := NewUserRepo(&Data{gormDB: newReloadableDB(db, nil)}) user, err := r.FindUserByUUID(context.Background(), "business-uuid") if err != nil { t.Fatal(err) } if user.Level != 2 || user.ParentID != 11 || user.IDPath != "0,11" || user.RealName != "商务姓名" || user.QQNumber != "12345" || user.BusinessStatus != 3 || user.RejectReason != "审核资料" || user.Password != "original-hash" { t.Fatalf("迁移或身份加载丢失商务字段: %+v", user) } }