import { createPinia, setActivePinia } from 'pinia'
import { flushPromises, shallowMount } from '@vue/test-utils'
import { beforeEach, describe, expect, it, vi } from 'vitest'
import { listPlatformPermissions, type PlatformPermissionResource } from '@/modules/iam/api/platformIam'
import { useAuthStore } from '@/core/auth/auth'
import PermissionsView from './PermissionsView.vue'
vi.mock('@/modules/iam/api/platformIam', () => ({
changePlatformPermissionStatus: vi.fn(),
createPlatformPermission: vi.fn(),
deletePlatformPermission: vi.fn(),
listPlatformPermissions: vi.fn(),
updatePlatformPermission: vi.fn(),
}))
const permission: PlatformPermissionResource = {
id: 5100010,
tenantId: 0,
appCode: 'PLATFORM',
permissionType: 'MENU',
parentId: 5100000,
permissionCode: 'platform:customer:list',
permissionName: '企业客户',
routePath: '/customers',
httpMethod: null,
sortNo: 10,
status: 'ACTIVE',
}
function mountServerView() {
const pinia = createPinia()
setActivePinia(pinia)
const auth = useAuthStore()
auth.isServerSession = true
auth.permissions = ['platform:permission:list', 'platform:permission:create']
return shallowMount(PermissionsView, {
global: {
plugins: [pinia],
directives: { loading: () => undefined },
stubs: {
AdminPage: { template: '