35 lines
1.1 KiB
Go
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)
|
|
}
|
|
}
|
|
}
|