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.GroupCode == "" { 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())) } }