refactor platform menus and entity statuses

This commit is contained in:
david
2026-07-29 13:18:52 +08:00
parent 978dc446d9
commit afd9dbdeb5
48 changed files with 510 additions and 421 deletions

View File

@@ -0,0 +1,41 @@
package platform
import "testing"
func TestPlatformMenusAreStaticTwoDimensionalData(t *testing.T) {
if len(PlatformMenus) == 0 {
t.Fatal("PlatformMenus must contain menu groups")
}
seen := make(map[string]bool)
for _, group := range PlatformMenus {
if len(group) < 2 {
t.Fatal("each platform menu group must include a first-level menu and at least one second-level menu")
}
parent := group[0]
if parent.ParentIdentity != "" {
t.Fatalf("first menu in group must be first-level: %#v", parent)
}
for index, menu := range group {
if menu.Identity == "" || menu.MenuCode == "" {
t.Fatalf("menu identity and code are required: %#v", menu)
}
if index > 0 && menu.ParentIdentity != parent.Identity {
t.Fatalf("second-level menu %s must reference parent %s", menu.Identity, parent.Identity)
}
if seen[menu.Identity] {
t.Fatalf("duplicate menu identity: %s", menu.Identity)
}
seen[menu.Identity] = true
}
}
}
func TestRootLoadsAllStaticPlatformMenus(t *testing.T) {
menus, err := LoadPlatformMenus("root")
if err != nil {
t.Fatal(err)
}
if len(menus) != len(AllPlatformMenus()) {
t.Fatalf("root menu count = %d, want %d", len(menus), len(AllPlatformMenus()))
}
}