1
0

migration_models_test.go 725 B

1234567891011121314151617181920212223242526272829
  1. package database
  2. import (
  3. "reflect"
  4. "testing"
  5. )
  6. func TestMigrationModelsMatchPanelModels(t *testing.T) {
  7. names := func(models []any) map[string]bool {
  8. set := make(map[string]bool, len(models))
  9. for _, m := range models {
  10. set[reflect.TypeOf(m).Elem().Name()] = true
  11. }
  12. return set
  13. }
  14. panel := names(allModels())
  15. migration := names(migrationModels())
  16. for name := range panel {
  17. if !migration[name] {
  18. t.Errorf("model %s is in allModels but missing from migrationModels: cross-db migration silently drops its rows", name)
  19. }
  20. }
  21. for name := range migration {
  22. if !panel[name] {
  23. t.Errorf("model %s is in migrationModels but missing from allModels: its table never exists on a live panel", name)
  24. }
  25. }
  26. }