Files
goauto/server/cmd/migrate/migration/version-local/1787983600000_purchase_rules_test.go
T

45 lines
1.4 KiB
Go

package version_local
import (
"testing"
goautomodels "go-admin/app/goauto/models"
"go-admin/app/goauto/purchasecontract"
migrationmodels "go-admin/cmd/migrate/migration/models"
common "go-admin/common/models"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
func TestMigratePurchaseRulesSeedsExactDefaultAndMenu(t *testing.T) {
db, err := gorm.Open(sqlite.Open("file:purchase-rules?mode=memory&cache=shared"), &gorm.Config{})
if err != nil {
t.Fatal(err)
}
if err = db.AutoMigrate(&common.Migration{}, &migrationmodels.SysRole{}, &migrationmodels.SysMenu{}, &migrationmodels.SysApi{}, &purchaserCasbinRule{}); err != nil {
t.Fatal(err)
}
if err = migratePurchaseRules(db, "1787983600000"); err != nil {
t.Fatal(err)
}
var setting goautomodels.PurchaseRuleSetting
if err = db.Preload("Rule").First(&setting, 1).Error; err != nil {
t.Fatal(err)
}
if setting.Rule.ContentJSON != string(purchasecontract.DefaultLiveRule()) {
t.Fatal("seeded purchase rule does not equal DefaultLiveRule bytes")
}
var menu migrationmodels.SysMenu
if err = db.Where("menu_name = ?", "GoAutoPurchaseRules").First(&menu).Error; err != nil {
t.Fatal(err)
}
var parent migrationmodels.SysMenu
if err = db.Where("menu_name = ?", "GoAutoCollectionManagement").First(&parent).Error; err != nil {
t.Fatal(err)
}
if menu.ParentId != parent.MenuId {
t.Fatalf("purchase rule menu parent=%d want=%d", menu.ParentId, parent.MenuId)
}
}