Some checks failed
CI / init (pull_request) Has been cancelled
CI / Frontend node 18.16.0 (pull_request) Has been cancelled
CI / Backend go (1.22) (pull_request) Has been cancelled
CI / release-pr (pull_request) Has been cancelled
CI / devops-test (1.22, 18.16.0) (pull_request) Has been cancelled
CI / release-please (pull_request) Has been cancelled
CI / devops-prod (1.22, 18.x) (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
31 lines
909 B
Go
31 lines
909 B
Go
package system
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
adapter "github.com/casbin/gorm-adapter/v3"
|
|
"github.com/glebarez/sqlite"
|
|
"github.com/stretchr/testify/require"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func TestInitCasbinIncludesApiRoleManagementPolicies(t *testing.T) {
|
|
db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
|
|
require.NoError(t, err)
|
|
require.NoError(t, db.AutoMigrate(&adapter.CasbinRule{}))
|
|
|
|
_, err = (&initCasbin{}).InitializeData(context.WithValue(context.Background(), "db", db))
|
|
require.NoError(t, err)
|
|
|
|
requiredPolicies := []adapter.CasbinRule{
|
|
{Ptype: "p", V0: "888", V1: "/api/getApiRoles", V2: "GET"},
|
|
{Ptype: "p", V0: "888", V1: "/api/setApiRoles", V2: "POST"},
|
|
}
|
|
for _, policy := range requiredPolicies {
|
|
var count int64
|
|
require.NoError(t, db.Model(&adapter.CasbinRule{}).Where(policy).Count(&count).Error)
|
|
require.Equalf(t, int64(1), count, "missing policy: %+v", policy)
|
|
}
|
|
}
|