17 lines
937 B
TypeScript
17 lines
937 B
TypeScript
import { fireEvent, render, screen } from '@testing-library/react'
|
|
import DepartmentAccountMenu from './DepartmentAccountMenu'
|
|
let role = 'SYSTEM_ADMIN'
|
|
jest.mock('next-auth/react', () => ({ useSession: () => ({ data: { user: { name: '验收用户', role } } }), signOut: jest.fn() }))
|
|
test.each(['ADMIN', 'SYSTEM_ADMIN', 'DEPT_ADMIN'])('管理员 %s 可找到原后台入口', current => {
|
|
role = current
|
|
render(<DepartmentAccountMenu collapsed={false} />)
|
|
fireEvent.click(screen.getByRole('button', { name: '打开账户菜单' }))
|
|
expect(screen.getByRole('menuitem', { name: '素材库后台' })).toHaveAttribute('href', '/admin')
|
|
})
|
|
test('普通用户没有后台入口', () => {
|
|
role = 'USER'
|
|
render(<DepartmentAccountMenu collapsed={false} />)
|
|
fireEvent.click(screen.getByRole('button', { name: '打开账户菜单' }))
|
|
expect(screen.queryByRole('menuitem', { name: '素材库后台' })).not.toBeInTheDocument()
|
|
})
|