package modules import "testing" func TestCatalogMigrationIDsAreUnique(t *testing.T) { seen := map[string]string{} for _, definition := range Catalog().Definitions { for _, step := range definition.Migrations { if previous, exists := seen[step.ID]; exists { t.Fatalf("migration %q is declared by both %s and %s", step.ID, previous, definition.Name) } seen[step.ID] = definition.Name } } } func TestCatalogContainsBuiltInModulesInDependencyOrder(t *testing.T) { catalog := Catalog() if len(catalog.Definitions) != 4 { t.Fatalf("definitions = %d, want 4", len(catalog.Definitions)) } want := []string{"system", "integration", "task", "payment"} for index, name := range want { if got := catalog.Definitions[index].Name; got != name { t.Fatalf("definition[%d] = %q, want %q", index, got, name) } } if got := catalog.MigrationSteps(); len(got) != 13 { t.Fatalf("module migrations = %d, want 13", len(got)) } var menus, apis int for _, definition := range catalog.Definitions { menus += len(definition.Surface.Menus) apis += len(definition.Surface.APIs) } if menus != 3 || apis != 17 { t.Fatalf("admin surface = %d menus/%d APIs, want 3/17", menus, apis) } if got := catalog.DefaultTimedTasks(); len(got) != 2 { t.Fatalf("default timed tasks = %d, want 2", len(got)) } }