43 lines
1.3 KiB
Go
43 lines
1.3 KiB
Go
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) != 8 {
|
|
t.Fatalf("module migrations = %d, want 8", 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 != 15 {
|
|
t.Fatalf("admin surface = %d menus/%d APIs, want 3/15", menus, apis)
|
|
}
|
|
if got := catalog.DefaultTimedTasks(); len(got) != 2 {
|
|
t.Fatalf("default timed tasks = %d, want 2", len(got))
|
|
}
|
|
}
|