package service import ( "testing" "go-admin/app/admin/models" "gorm.io/driver/sqlite" "gorm.io/gorm" ) func TestValidateEnabledRole(t *testing.T) { db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{}) if err != nil { t.Fatal(err) } if err = db.AutoMigrate(&models.SysRole{}); err != nil { t.Fatal(err) } if err = db.Create(&models.SysRole{RoleName: "采购员", RoleKey: "purchaser", Status: "2"}).Error; err != nil { t.Fatal(err) } var role models.SysRole db.Where("role_key = ?", "purchaser").First(&role) if err = validateEnabledRole(db, role.RoleId); err != nil { t.Fatalf("enabled role rejected: %v", err) } if err = validateEnabledRole(db, 0); err == nil { t.Fatal("role zero must be rejected") } if err = validateEnabledRole(db, role.RoleId+100); err == nil { t.Fatal("missing role must be rejected") } }