| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package initialize
- import (
- "testing"
- "github.com/glebarez/sqlite"
- "github.com/stretchr/testify/require"
- "gorm.io/gorm"
- "wails-app/internal/dao"
- "wails-app/internal/global"
- )
- func TestEnsurePaymentConfigurationIsIdempotent(t *testing.T) {
- db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
- require.NoError(t, err)
- global.GVA_DB = db
- require.NoError(t, db.AutoMigrate(
- &dao.PaymentMethodConfig{}, &dao.PaymentEntryConfig{}, &dao.PaymentEntryMethod{},
- &dao.SysBaseMenu{}, &dao.SysAuthorityMenu{}, &dao.SysApi{},
- ))
- parking := dao.SysBaseMenu{Path: "parking", Name: "parking", Meta: dao.Meta{Title: "停车管理"}}
- require.NoError(t, db.Create(&parking).Error)
- require.NoError(t, EnsurePaymentConfiguration())
- require.NoError(t, EnsurePaymentConfiguration())
- var methods []dao.PaymentMethodConfig
- require.NoError(t, db.Order("sort").Find(&methods).Error)
- require.Len(t, methods, 3)
- require.Equal(t, "cash", methods[0].Code)
- require.True(t, methods[0].Enabled)
- require.Equal(t, []string{"counter"}, methods[0].Scenes)
- var entries []dao.PaymentEntryConfig
- require.NoError(t, db.Order("sort").Find(&entries).Error)
- require.Len(t, entries, 2)
- var relationCount int64
- require.NoError(t, db.Model(&dao.PaymentEntryMethod{}).Count(&relationCount).Error)
- require.EqualValues(t, 5, relationCount)
- var menuCount int64
- require.NoError(t, db.Model(&dao.SysBaseMenu{}).Where("name = ?", "paymentMethodConfig").Count(&menuCount).Error)
- require.EqualValues(t, 1, menuCount)
- var permissionCount int64
- require.NoError(t, db.Model(&dao.SysAuthorityMenu{}).Count(&permissionCount).Error)
- require.EqualValues(t, 4, permissionCount)
- var ruleCount int64
- require.NoError(t, db.Table("casbin_rule").Count(&ruleCount).Error)
- require.EqualValues(t, 32, ruleCount)
- }
|