Repository test coverage improved to 80.4% - role_permission_repository_test.go: GetPermissionsByIDs test - user_role_repository_test.go: GetUserRolesAndPermissions test - user_repository_test.go: ListCursor test
56 lines
1.6 KiB
Go
56 lines
1.6 KiB
Go
package repository
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/user-management-system/internal/domain"
|
|
)
|
|
|
|
func TestRolePermissionRepository_GetPermissionsByIDs(t *testing.T) {
|
|
db := setupTestDB(t)
|
|
repo := NewRolePermissionRepository(db)
|
|
ctx := context.Background()
|
|
|
|
// 创建权限
|
|
perm1 := &domain.Permission{Code: "perm1", Name: "权限1", Status: domain.PermissionStatusEnabled}
|
|
perm2 := &domain.Permission{Code: "perm2", Name: "权限2", Status: domain.PermissionStatusEnabled}
|
|
db.WithContext(ctx).Create(perm1)
|
|
db.WithContext(ctx).Create(perm2)
|
|
|
|
// 创建角色
|
|
role := &domain.Role{Code: "test-role", Name: "测试角色", Status: domain.RoleStatusEnabled}
|
|
db.WithContext(ctx).Create(role)
|
|
|
|
// 分配权限
|
|
repo.Create(ctx, &domain.RolePermission{RoleID: role.ID, PermissionID: perm1.ID})
|
|
repo.Create(ctx, &domain.RolePermission{RoleID: role.ID, PermissionID: perm2.ID})
|
|
|
|
// 测试批量获取权限
|
|
perms, err := repo.GetPermissionsByIDs(ctx, []int64{perm1.ID, perm2.ID})
|
|
if err != nil {
|
|
t.Fatalf("GetPermissionsByIDs() error = %v", err)
|
|
}
|
|
if len(perms) != 2 {
|
|
t.Errorf("len(perms) = %d, want 2", len(perms))
|
|
}
|
|
|
|
// 测试空列表
|
|
emptyPerms, err := repo.GetPermissionsByIDs(ctx, []int64{})
|
|
if err != nil {
|
|
t.Fatalf("GetPermissionsByIDs() empty error = %v", err)
|
|
}
|
|
if len(emptyPerms) != 0 {
|
|
t.Errorf("len(emptyPerms) = %d, want 0", len(emptyPerms))
|
|
}
|
|
|
|
// 测试不存在的ID
|
|
nonExistentPerms, err := repo.GetPermissionsByIDs(ctx, []int64{9999})
|
|
if err != nil {
|
|
t.Fatalf("GetPermissionsByIDs() non-existent error = %v", err)
|
|
}
|
|
if len(nonExistentPerms) != 0 {
|
|
t.Errorf("len(nonExistentPerms) = %d, want 0", len(nonExistentPerms))
|
|
}
|
|
}
|