| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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 TestEnsureOperationPermissionsIsIdempotent(t *testing.T) {
- db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
- require.NoError(t, err)
- require.NoError(t, db.AutoMigrate(&dao.SysApi{}))
- global.GVA_DB = db
- t.Cleanup(func() { global.GVA_DB = nil })
- require.NoError(t, EnsureOperationPermissions())
- require.NoError(t, EnsureOperationPermissions())
- routes := [][2]string{
- {"/vehicle/entry", "POST"},
- {"/vehicle/operation/context", "POST"},
- {"/vehicle/passage", "POST"},
- {"/channel/events", "GET"},
- {"/parking/gate/devices", "GET"},
- {"/parking/gate/open", "POST"},
- {"/parking/gate/close", "POST"},
- }
- for _, route := range routes {
- var apiCount int64
- require.NoError(t, db.Model(&dao.SysApi{}).
- Where("path = ? AND method = ?", route[0], route[1]).Count(&apiCount).Error)
- require.EqualValues(t, 1, apiCount, route)
- var ruleCount int64
- require.NoError(t, db.Table("casbin_rule").
- Where("v0 IN ? AND v1 = ? AND v2 = ?", []string{"618", "888", "9527"}, route[0], route[1]).
- Count(&ruleCount).Error)
- require.EqualValues(t, 3, ruleCount, route)
- }
- }
|