Files
kra-new/internal/data/business/menu_icons_test.go
T

35 lines
1.1 KiB
Go

package business
import "testing"
func TestBusinessMenuIconsRepairLegacyAndPreserveCustom(t *testing.T) {
db := openTestDB(t)
if err := db.Exec("CREATE TABLE sys_base_menus(id INTEGER PRIMARY KEY,name TEXT,icon TEXT)").Error; err != nil {
t.Fatal(err)
}
for _, sql := range []string{
"INSERT INTO sys_base_menus VALUES(1,'sw_BusMgmt','category'),(2,'sw_BusinessList','email'),(3,'sw_ChannelList','Connection'),(4,'sw_ChannelActivationList','CirclePlus'),(5,'sw_DataAnalysis',NULL),(6,'dashboard','category')",
} {
if err := db.Exec(sql).Error; err != nil {
t.Fatal(err)
}
}
for attempt := 0; attempt < 2; attempt++ {
if err := migrateBusinessMenuIcons(db); err != nil {
t.Fatal(err)
}
}
var rows []struct {
ID int
Icon string
}
if err := db.Table("sys_base_menus").Order("id").Scan(&rows).Error; err != nil {
t.Fatal(err)
}
for i, want := range []string{"Briefcase", "UserFilled", "Connection", "CirclePlus", "DataAnalysis", "category"} {
if rows[i].Icon != want {
t.Fatalf("菜单%d图标错误或误改自定义值: %+v", i, rows)
}
}
}