Files
platforms/backend/api/internal/logic/platform/menu_test.go

42 lines
1.2 KiB
Go
Raw Normal View History

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()))
}
}